2009年6月13日 星期六

FLASH與ASP間的資料傳遞

要用FLASH和ASP作互動(client端&server端之連結)
讓使用者輸入ID,將ID傳到ASP,再從ASP把值傳回來。
(軟體分別使用Flash MX2004 和 Visual Web Developer 2008 Express版)

想法:
用FLASH第一個影格裡製作一個文字輸入欄(id_txt)和按鈕(ok_btn),輸入文字按下按鈕後,即可將所輸入的文字傳到ASP的Label。
ASP再將值傳回FLASH的第二個影格的動態文字框(receive_mc)。
-----------------第一個影格時間軸程式碼--------------------
stop();
var username = new LoadVars();
id_txt.onData = function(){
}
ok_btn.onRelease = function() {
loadVariables(Default.aspx, post);
_root.gotoAndPlay(2);
}
--------------------------------------------------------------------------

-----------第二個影格的動態文字框接收傳回值-----------

onClipEvent(load)
{
CurrentRecord = 0;
loadVariables ("Default.aspx", get);
}
onClipEvent(data)
{
strusername=username;
strPosition = "Record " add String(CurrentRecord+1) add " of " add String(TotalRecords);
}
--------------------------------------------------------------------------

--------------------------ASP的Label內容--------------------------
Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim id_txt As String = ""
id_txt = Request("id_txt")
Response.Write(id_txt)
End Sub

End Class
--------------------------------------------------------------------------

改用下面的方法
var result_lv:LoadVars = new LoadVars();//先宣告一個容器用來接收資料
result_lv.onLoad = function(success:Boolean) {
if (success) {//如果載入成功
result_ta.text = result_lv.welcomeMessage;//result_lv是容器、welcomeMessage是傳回的變數 (請依實際情況做修改)
} else {//如果載入失敗
result_ta.text = "連線失敗";
}
};
var send_lv:LoadVars = new LoadVars();//宣告一個容器存放要傳出的資料
send_lv.name = name_ti.text;//send_lv是容器、name是要傳出的變數名稱 (請依實際情況做修改)

下面這一行你可以寫在按鈕的 onRelease 裡

send_lv.sendAndLoad("filename.asp",result_lv,"POST");

ASP的部份
你要接收 POST 進來的 name 變數,然後做你想做的處理
要傳資料給FLASH
就把資料輸出到頁面上、FLASH就會接收到

輸出的格式如下
變數名稱=值
如果有多個變數就用 & 分隔
變數名稱1=值&變數名稱2=值&變數名稱3=值

不要輸出不必要的東西在畫面上

Q:要怎麼把值丟進去?
A:上面的程式碼就可以將資料丟給ASP。

Q:他要怎麼接收flash丟出來的值?
看你貼的程式碼、我以為你會寫ASP
ASP不是我的專長、但我搜尋的結果應該是下面這句

Request.Form("變數")

如果FLASH傳出來的變數叫做 name
那ASP就用Request.Form("name")取得傳入的資料

沒有留言:

張貼留言