Flash 與 html 的一些實用技巧
2024-09-12 17:50:34
供稿:網友
隨著Flash的日益普及, Flash在WEB開發上面可是大顯身手,既然是WEB-Site,那當然離不開基本的Html頁面,以下是本人平時在制作Flash站點時候經常要用到的與Html方面的實用小技巧,不算多適合剛剛接觸用Flash進行WEB開發的朋友,希望能夠對大家有一定的幫助,本人算不上什么高手,錯誤之處還是難免的,請大家多多包涵,謝謝!
1.動態解析FlashWEB應用程序的HTTP服務器路徑
玩過Flash+ASP/PHP開發的朋友都知道,在Flash軟件里測試Flash從后臺腳本讀取數據的時候,不能直接的用如“loaddata.asp”這樣的路徑,必須是http://www.domain.com/Application/loaddata.asp 或者 http: 開頭的路徑。有些人問了?為什么呢?
當FlashPlayer里測試的時候收到load("loaddata.asp")這個命令的時候,他會直接讀swf文件路徑下的 loaddata.asp文件。但由于沒有經過IIS的運行處理,直接讀入Flash內部,當然,讀出的結果就是%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%類似這樣了,所以就無法根據我們的意愿來處理數據了,而當FlashPlayer執行load("http://www.domain.com/Application/loaddata.asp")這個命令的時候,他就不再是本地的TXT文件讀取命令,而是一個HTTP請求,FlashPlayer把這個請求發送到HTTP服務器,服務器的IIS解析腳本返回結果后Flashplayer便可以正確的處理這些數據了。(廢話一堆)
當然如果你清楚了路徑的關系,也可以把寫load("loaddata.asp")寫到Flash里,上傳的時候,把.asp .swf 和包含 .swf的html文件,都放在一個目錄里就行了。特別指出的是swf 在取得路徑時,是取包含他的html和.asp的關系的。而不是 swf 與 asp的路徑關系。
說起來已經是有一點暈了,但如果理解了路徑的關系,那就非常簡單了。
好了,進入正題,雖然輸入HTTP路徑就可以正確讀取數據,但是在程序開發測試階段可能經常需要開發者更換服務器,那樣就對我們造成了一定的麻煩,你每更換到另外一個服務器上面的時候就要修改一次他的HTTP路徑,如果讀取了N(N≠0)個文件,難道還要手動修改N次?當然不是,那么通過下面這個小技巧便可以輕松解決這個問題:
把SWF文件嵌入到一個ASP頁面里面,輸入如下代碼:
<%
Dim PageUrl,URLarry,i,ApplicationURL
PageUrl="http://" & Request.ServerVariables("http_host") & Request.ServerVariables("url")
Response.Write "PageURL="&PageUrl
URLarry=Split(PageUrl,"/")
Arryubound=ubound(URLarry,1)-1
For i=0 to Arryubound
ApplicationURL=ApplicationURL&URLarry(i)&"/"
NEXT
Response.Write "<br>ApplicationURL="&ApplicationURL '這一句僅僅是測試代碼是否正確,可省
%>
好了,對ASP有一定了解的朋友應該都明白代碼是什么意思了,PHP也可以用這種思路來寫,下面在SWF路徑中可以這樣寫 <%="flash.swf?myserver="&ApplicationURL%> 這樣就可以通過URL把變量傳遞給SWF文件,在Flash影片中便可以直接訪問這個變量了,就是_root.myserver。 好的,現在來讓我們測試一下結果,先編寫一個loaddata.asp,讓他返回一個back變量。
打開FLASH,新建一個文件。然后在場景中拖入兩個動態文本框,分別命名為txt.url 然后在第一幀輸入以下代碼:
mytxt=new LoadVars()
mytxt.load(_root.myserver+"loaddata.asp")
mytxt.onLoad=function(success){
if(success){
txt.text=this.Back
url.text=_root.myserver+"loaddata.asp"
}else{
txt.text="No File"
url.text=_root.myserver+"loaddata.asp"
}
}
好了,Ctrl+Enter,發布影片,,然后把SWF文件嵌入之前的那個ASP頁面,就可以看看效果了,分別在IE地址欄里面輸入http://127.0.0.1/**** , http://localhost/***** , http://本機IP地址/**** 如果都能正確讀取,那就說明已經OK了,呵呵,下面的慢慢玩吧!
編輯語:如果在調試的時候,用絕對路徑,那么在測試完畢上傳前,改為相對路徑會更方便整個目錄在站點里的移動,也就可以不用上述復雜的方法了。