隨著Flash的日益普及, Flash在WEB開發(fā)上面可是大顯身手,既然是WEB-Site,那當(dāng)然離不開基本的Html頁面,以下是本人平時在制作Flash站點時候經(jīng)常要用到的與Html方面的實用小技巧,不算多適合剛剛接觸用Flash進行WEB開發(fā)的朋友,希望能夠?qū)Υ蠹矣幸欢ǖ膸椭,本人算不上什么高手,錯誤之處還是難免的,請大家多多包涵,謝謝!
1.動態(tài)解析FlashWEB應(yīng)用程序的HTTP服務(wù)器路徑
玩過Flash+ASP/PHP開發(fā)的朋友都知道,在Flash軟件里測試Flash從后臺腳本讀取數(shù)據(jù)的時候,不能直接的用如“l(fā)oaddata.asp”這樣的路徑,必須是http://www.domain.com/Application/loaddata.asp 或者 http: 開頭的路徑。有些人問了?為什么呢?
當(dāng)FlashPlayer里測試的時候收到load("loaddata.asp")這個命令的時候,他會直接讀swf文件路徑下的 loaddata.asp文件。但由于沒有經(jīng)過IIS的運行處理,直接讀入Flash內(nèi)部,當(dāng)然,讀出的結(jié)果就是%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%類似這樣了,所以就無法根據(jù)我們的意愿來處理數(shù)據(jù)了,而當(dāng)FlashPlayer執(zhí)行l(wèi)oad("http://www.domain.com/Application/loaddata.asp")這個命令的時候,他就不再是本地的TXT文件讀取命令,而是一個HTTP請求,F(xiàn)lashPlayer把這個請求發(fā)送到HTTP服務(wù)器,服務(wù)器的IIS解析腳本返回結(jié)果后Flashplayer便可以正確的處理這些數(shù)據(jù)了。(廢話一堆)
當(dāng)然如果你清楚了路徑的關(guān)系,也可以把寫load("loaddata.asp")寫到Flash里,上傳的時候,把.asp .swf 和包含 .swf的html文件,都放在一個目錄里就行了。特別指出的是swf 在取得路徑時,是取包含他的html和.asp的關(guān)系的。而不是 swf 與 asp的路徑關(guān)系。
說起來已經(jīng)是有一點暈了,但如果理解了路徑的關(guān)系,那就非常簡單了。
好了,進入正題,雖然輸入HTTP路徑就可以正確讀取數(shù)據(jù),但是在程序開發(fā)測試階段可能經(jīng)常需要開發(fā)者更換服務(wù)器,那樣就對我們造成了一定的麻煩,你每更換到另外一個服務(wù)器上面的時候就要修改一次他的HTTP路徑,如果讀取了N(N≠0)個文件,難道還要手動修改N次?當(dāng)然不是,那么通過下面這個小技巧便可以輕松解決這個問題:
把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有一定了解的朋友應(yīng)該都明白代碼是什么意思了,PHP也可以用這種思路來寫,下面在SWF路徑中可以這樣寫 <%="flash.swf?myserver="&ApplicationURL%> 這樣就可以通過URL把變量傳遞給SWF文件,在Flash影片中便可以直接訪問這個變量了,就是_root.myserver。 好的,現(xiàn)在來讓我們測試一下結(jié)果,先編寫一個loaddata.asp,讓他返回一個back變量。
打開FLASH,新建一個文件。然后在場景中拖入兩個動態(tài)文本框,分別命名為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,發(fā)布影片,,然后把SWF文件嵌入之前的那個ASP頁面,就可以看看效果了,分別在IE地址欄里面輸入http://127.0.0.1/**** , http://localhost/***** , http://本機IP地址/**** 如果都能正確讀取,那就說明已經(jīng)OK了,呵呵,下面的慢慢玩吧!
編輯語:如果在調(diào)試的時候,用絕對路徑,那么在測試完畢上傳前,改為相對路徑會更方便整個目錄在站點里的移動,也就可以不用上述復(fù)雜的方法了。
出處:藍色理想
責(zé)任編輯:藍色
上一頁 下一頁 在HTML頁中讓Flash背景透明
◎進入論壇Flash專欄版塊參加討論
|