複製代碼 代碼如下:
能不能在flash動畫中給asp傳遞變數?
faq-it.org/vb/---------------------------------------------------------------
資料庫結構:
第一步要做的是建立資料庫.例子中使用Access資料庫,表名為tblStaff
有三個欄位:strID (自動編號), strKnownAs(Text),strSurname (Text).
這是一個用來示範使用者名稱的資料庫,隨便加些資料把.
第二步就是建立一個Flash 4的動畫羅:
步驟如下:
1)建立三個text field.它們是用來顯示資料用的
2)把第一個text field的name設定為Input,它是用來接收輸入資料的
3)另外兩個text field分別命名為KnownAs和Surname
4)其它設定先為預設
5)最後,從Flash的library中選擇增加一個按鈕 (應該是一個可重用的組件ScrollBarButton ).
這是很重要的一步,按鈕將把輸入的變數傳遞給ASP頁面
到按鈕的屬性(Properties)上單擊Action頁. 單擊"+"號和On MouseEvent.勾上Release框.
6)再次單擊"+"號和Load/Unload Movie.選擇"Load Variables Into Location"
在URL輸入框內輸入你的ASP檔案名稱(例如flash.asp). 選擇Target.
7)最後,選擇Variables中的Send using POST. 單擊"+"號來設定變數
在Variable輸入框內輸入"Input"(就是第一個text field的name)
當上面的工作都完成後,你應該在action box內看到如下內容:
On (Release)
Load Variables ("flash.asp", "", vars=POST)
Set Variable: "Input" = ""
End On
這樣當在動畫過程中這個按鈕被點擊並釋放後,Input輸入框中的內容將被傳遞給flash.asp檔案.
注意form是使用的post方式傳遞變數的.
8)現在建立一個HTML頁面,在其中包含這個Flash動畫檔案
第三步:ASP檔案的代碼
<%
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
Connection.Open "people" '你的資料庫連接的DSN
SQL = "SELECT * FROM tblStaff WHERE strID=" & Request.Form("Input") & ";"
Recordset.Open SQL,Connection,1,2
If Recordset.EOF Then
KnownAs = "Not"
Surname = "Found"
Else
KnownAs = Recordset ("strKnownAs")
Surname = Recordset ("strSurname")
End If
Recordset.Close
Connection.Close
response.write("KnownAs="+Server.URLEncode(KnownAs))
response.write("&Surname="+Server.URLEncode(Surname))
%>
需要注意的是在把KnownAs和Surname傳遞迴去的寫法,將是這樣的
KnownAs=Data1&Surname=Data2
使用Server.URLEncode(VariableName)來保證傳遞過去變數的是按照 URL格式編碼的
下面簡單介紹一下ASP和Flash通訊的原理:
變數其實都是通過URL傳遞給Flash的,其實這是一種GET方法
你不使用ASP其實也可以把變數傳遞給一個swf檔案的,只要這樣:
<PARAM NAME=movie VALUE="myMovie.swf?myVariable=Text+of+my+variable">
接著文本"Text of my variable"將會出現在Flash的動畫中指定的位置
好了,該說的都說了,現在對於ASP的開發人員來說,只要把Flash所需要的資料準備好,然後利用Flash中的動畫
功能就可以做出強勁的網頁出來了.最簡單的是利用flash結合資料庫畫一個很漂亮的餅圖,呵呵.反正只要大家能夠想象就可以做出
很多很好的東西出來的.