摘要:flash不能直接訪問服務器,通過與asp,php等服務器端的腳本的通信,實現上傳下載數據,該文重點介紹了使用flash中的LoadVars類實現數據上傳下載的方法。
關鍵字:loadvars類;服務器;通信
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)21-5702-02
Flash是美國Mecromedia公司出品的矢量圖形編輯和交互動畫創作的專業軟件,主要應用于網頁設計和多媒體創作等領域,功能十分強大和獨特,已成為交互式矢量動畫的標準。LoadVars 類在 Flash Player 6 中引入,為與 Web 服務器交換 CGI 數據的常見任務提供一個更清晰、更面向對象的接口。
1 LoadVars類的屬性和方法
1.1 屬性
1)contentType:調用 LoadVars.send() 或 LoadVars.sendAndLoad() 時發送到服務器的 MIME 類型。
2)loaded:一個布爾值,指示 load 或 sendAndLoad 操作是否已完成,默認情況下為 undefined。
1.2 LaodVars類方法
1)onLoad:當 LoadVars.load() 或 LoadVars.sendAndLoad() 操作已結束時調用。如果該操作成功,將使用該操作所下載的變量填充 my_lv,而這些變量將在調用此處理函數時變為可用
2)sendAndLoad:將 my_lv 對象中的變量發送到指定的 URL。下載服務器響應,并將其作為變量數據進行分析,然后將結果變量放在 target 對象中。
2 LoadVars類與服務器的通信
2.1 loadvars類向服務哭提交數據
var data_lv = new LoadVars();
//提交的用戶名變量和參數值;
data_lv.username = \"administrator\";
//提交的密碼變量和參數值;
data_lv.password = \"admin\";
//提交后返回結果;
data_lv.onLoad = function(success){
if(success){
trace(\"數據提交成功!\");
if(this.result==\"true\"){
trace(\"yes\");
}else{
trace(\"no\");
}}
else{
trace(\"數據提交失敗!\");}}
//數據提交方法調用;
//第一參數就是提交的頁面地址;
//第二參數就是返回結果對象(只要是LoadVars對象就可以了);
//第三參數就是提交方式(這個和html中form表單類似,分為\"post\"和\"get\"兩種方式)
data_lv.sendAndLoad(\"http://localhost/reg.asp\",data_lv,\"post\");
//后臺服務端頁面處理及返回內容;
//接收flash提交過來的變量和接收一個頁面提交過來的變量一致的;
Request(\"username\") 就是flash端username變量傳過來的值\"administrator\";
Request(\"password\") 就是flash端password變量傳過來的值\"admin\";
....數據庫驗證.....
//如果用戶驗證通過
result=true
//如果用戶驗證失敗
result=1
//整個頁面返回內容就是上面那一行內容,result對應用著flash端的result變量;
//如果是多個返回值的話,就是result=xxxresult1=xxx這種形式就可以了;
2.2 LoadVars類從服務器下載數據
新建一個Flash文檔,向主場景拖入一個TextArea組件,命名為myTextArea,用來顯示接收到的值,動作面板的腳本如下:
//聲明myTextArea為一個TextArea類實例
var myTextArea:mx.controls.TextArea;
//聲明lv為一個新的LoadVars組件
var lv:LoadVars=new LoadVars();
//定義lv的onLoad函數
lv.onLoad=function(success:Boolean):Void
if(success){}
else
{myTextArea.text=\"error\";}}
//lv對象讀取指定頁面
lv.load(\"http://localhost:8080/loadvars.asp\");
3 LoadVars方式的優點
1)flash代碼實現起來簡單、方便;2)服務端接收頁面和接收一個表單過來的數據一樣處理,不需要專門的技術,所有服務端程序都可以實現。
4 LoadVars方式的缺點
1)傳遞的變量不宜過多;2)變量傳遞的值不宜過長;3)變量傳遞值只能使用\"字符串\"這一種數據類型,數據類型單一; 4)數據返回值當中不能有\"\"字符,因此比較復雜的返回值都需進行URL編碼處理。
5 結束語
使用LoadVars類訪問服務器,解決了flash與服務器通信的問題,從而實現諸如flash留言版等能與用戶交互的程序。
參考文獻:
[1] 程勇.FLash完全手冊[M].北京:清華大學出版社,2005.
[2] 唐紅亮.ASP動態網頁設計應用教程[M].修訂版.成都:電子工業出版社,2009.