虞智輝
無錫高等師范學校 江蘇無錫 214001
隨著Flash技術的日益發(fā)展,F(xiàn)lash在網頁開發(fā)上的應用可謂層出不窮,但既然是運用于網頁上,那就與網頁的基本語言HTML息息相關,所以Flash動畫與HTML語言的有機結合,也成為時下Flash動畫發(fā)展的一個基本方向。以下是筆者在平時制作Flash站點時經常要用到的與HTML有關的實用技巧,希望能夠對大家有一定的幫助,同時也希望能拋磚引玉,引起大家對Flash與Web技術相結合的更深入的探討。
在早期的網頁中,由于技術的限制,只能看到一些靜態(tài)的文字和圖片。隨著Flash技術的出現(xiàn),把通過Flash軟件導出的swf文件或者gif圖片插入網頁中,這樣網頁就可以由能夠不斷變化的圖像或者豐富的文字動畫效果組成,使網頁有了初步的動畫效果,這就是動畫和網頁的初步結合。
隨著動畫技術和網頁編程語言的深入發(fā)展,人們已經越來越不能滿足這樣單向的欣賞,而是希望能在保留動畫的同時,和網頁或者網站有所交流,以達到自己的某種要求和目的。于是asp、php、jsp等技術應運而生。正是在Flash中嵌入了這些動態(tài)網頁語言,不僅保留了網頁的生動,而且增添了交互、實時、動態(tài)解析等新特性。
但是,F(xiàn)lash的動態(tài)解析存在一個問題,它用“l(fā)oad()”命令從后臺服務器讀取數據的時候不可以使用相對地址,而必須使用絕對地址。如要讀取服務器上show.asp文件時,不能直接寫“l(fā)oad(show.Asp)”,而必須寫“l(fā)oad(http://www.wxgdsf.cn/show.asp)”完整路徑。為什么呢?因為當Flash播放器接收到“l(fā)oad(show.asp)”命令時,它會認為這是一個本地文本文件(.txt),于是便不會經過IIS的運行處理而直接讀入Flash內部。當然,把“.asp”文件讀成“.txt”文件,結果就是一堆亂碼。而當Flash播放器執(zhí)行“l(fā)oad(http://www.wxgdsf.cn/show.asp)”這個命令的時候,由于它是一個HTTP請求,必須要經過IIS的處理,于是Flash player就不會認為它是本地的文本文件了。Flash player把這個請求發(fā)送到HTTP服務器,服務器的IIS解析腳本返回結果后,F(xiàn)lash播放器便可以正確處理這些數據。
雖然只要在語言中輸入正確的HTTP完整路徑,就可以讓Flash player讀取正確的數據,但是面臨的問題是,在進行編程開發(fā)或者進行程序調試時,需要經常更換計算機或者服務器,以檢測各種情況的發(fā)生。那就造成一種麻煩,也就是每更換到一個服務器上面的時候,就要修改一次源程序中的HTTP路徑,需要讀取的文件越多,改動的次數也會相應地增加,這樣就給調試帶來很大的麻煩。那么如何解決這一問題?通過實踐研究發(fā)現(xiàn),如果在讀取文件前先讀取地址,或者將地址直接傳遞給Flash player,就可以解決這一問題。
思路:1)獲得服務器地址;2)將服務器地址保存;3)讀取服務器地址并賦值給一變量;4)利用asp語言環(huán)境中變量的傳遞方法傳遞服務器地址。
代碼如下:
<%
Dim PageUrl, URLarry, ApplicationURL, n
PageUrl="http://" & Request.ServerVariables("http_host") & Request.ServerVariables ("url")
URLarry=Split (PageUrl,"/")
Arryubound=ubound (URLarry,1)-1
For n=0 to Arryubound
ApplicationURL=ApplicationURL&URLarry (n) &"/"
NEXT
%>
在swf文件中這樣寫“<%="aa.swf?myurl=”&ApplicationURL%> ”,這樣就可以通過URL把變量傳遞給swf文件,在Flash影片中便可以直接訪問這個變量。
動態(tài)技術的最大特點就是人機的一種交流,或者通過計算機成為人們之間的另一種交流通道。有交流,就會產生大量的信息,有些需要保留,有些需要刪除,有些需要排序,有些需要被檢索,還有一些需要共享,那就引出一個問題:這些數據該如何來管理?于是數據庫技術就誕生了??梢哉f數據庫是網絡動態(tài)技術的核心。
同樣,隨著Flash動畫在網站中的深化運用,與數據庫的鏈接已經成為一種必然現(xiàn)象。Flash動畫與數據庫的鏈接,不但可以使網頁繼續(xù)保留豐富的動態(tài)效果,而且可以保留人們交流的信息,使交流變得更有目的和效率。那么數據庫如何與Flash-Website進行鏈接呢?
要知道如何鏈接,首先必須要知道Flash與動態(tài)技術結合的原理。以基于HTML的asp動態(tài)語言為例,F(xiàn)lash和asp接口的原理和純asp文件之間交互的原理是一樣的,簡單地說就是頁面之間的數據交換。知道這一點后,一切就變得簡單了。
計算機中必須裝有IIS環(huán)境,必須支持數據庫;計算機中必須裝有Flash4.0以上版本;要對asp有初步的了解。
可以利用Access數據庫建立數據庫文件infor.mdb,其包含一個數據表infor1,該數據表中包含4個字段名:編號(bh)、姓名(xm)、性別(xb)、單位(dw)。
1)在第一關鍵幀內建立一輸入文本框,設置變量名為bh,在第二關鍵幀內建立3個動態(tài)文本框,分別設置變量名為xm、xb、dw。效果如圖1、圖2所示。
圖1 第一關鍵幀
圖2 第二關鍵幀
2)原理是鼠標點擊按鈕后,利用編號來獲得該用戶的其余信息。
按鈕的主要程序如下:
On (press) {
Load Variables (“infor.asp”, “”, vars=POST)
Set Variable: “bh” = “”
}
3)利用HTML語言建立網頁文件infor.asp,并將該動畫插入至網頁中
4)輸入asp程序代碼:
Dim rs, conn
Set rs = Server.CreateObject(“ADODB.Recordset”) //定義rs為RECORDSET對象
Set conn = Server.CreateObject(“ADODB.Connection”) //定義conn為CONNECTION對象
conn.open "Driver={Microsoft Access Driver(*.mdb)}; DBQ=" & Server.MapPath("infor.mdb")//建立數據庫引擎
SQL = “SELECT * FROM infor WHERE bh=” &Request. Form(“bh”) & “;”
rs.Open SQL,conn ,1,2 //打開數據表
do while not rs.eof
xm=rs (“xm”)
xb=rs (“xb”)
dw=rs (“dw”)
rs.movenext
loop
Response. Write "xm="& Server.URLEncode (rs("xm"))
Response. Write "xb="& Server.URLEncode (rs("xb"))
Response. Write “dw=”& Server.URLEncode(rs(“dw”))//保證返回過去變量的是按照URL格式編碼的
rs.Close
set rs=nothing
conn.Close
set conn=nothing//清空
以上是筆者在Flash制作時經常用到的2個技術。隨著Flash-Website的不斷發(fā)展,F(xiàn)lash技術與Web技術越來越緊密地配合,越來越多的動畫功能將在網站中被加以實現(xiàn)。相信今后,網頁將不單是技術發(fā)展的體現(xiàn),更是綜合技術的平臺。
[1]周峰,王征.FLASH ACTIONSCRIPT 3.0網絡動畫編程基礎與實踐教程[M].北京:電子工業(yè)出版社,2008
[2]林紀河,祁玉芹.FLASH CS4網絡動畫制作簡明教程[M].北京:電子工業(yè)出版社,2009
[3]童罕,吳慶波,等.一種動態(tài)網頁加速技術中的機制探討[J].微計算機信息,2009(27)
[4]崔俊杰.動態(tài)網頁技術淺析[J].長沙民政職業(yè)技術學院學報,2006,13(13)
[5]李志勇,徐長通.基于ASP的WEB數據庫智能查詢[J].河南師范大學學報,2010,38(1)