麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

AS3筆記(13),sendAndLoad的繼承者

2024-09-12 17:50:56
字體:
來源:轉載
供稿:網友
在As2中LoadVars和XML都有sendAndLoad方法,該方法可以使用 POST 方法將參數發送到指定的URL,下載服務器的響應并接受參數.在As3.0之前,是最普及的數據通訊方法之一.在AS3.0以后,XML方法已經參照E4X的規范來定義,早就沒有了sendAndLoad方法,而LoadVars 類更是消失的無影無蹤了。
其實早在AS2中就可以發現,sendAndLoad方法的設計很不合理,在兩中數據對象中存在且機制相同.現在好了,AS3.0中很好的封裝了這一功能,這就是URLLoader的登場.URLLoader 類以文本、二進制數據或 URL 編碼變量的形式從 URL 下載數據。 在下載文本文件、XML 或其它用于動態數據驅動應用程序的信息時,它很有用。可見,除了原有的variables和xml的數據加載方法,現在還多出了二進制數據方法,這個暫時不提,先說一下模擬AS2中兩個sendAndLoad的方法。完成這些方法,我們還需要下列類的幫助:

URLRequest 類 
URLVariables類 
URLRequest 類用以捕獲單個HTTP 請求中的所有信息,URLVariables 類可以在Flash 應用程序和服務器之間傳輸變量.詳細的說明請參看幫助.下例為一個sendAndLoad方法范例:
sendAndLoadEX.as
/*@
Author:frank
Site:www.2solo.cn
Date:2008.02.15
Info:sendAndLoad
*/
package {
    import flash.events.*;
    import flash.net.*;
    import flash.display.Sprite;

    public class sendAndLoadEX extends Sprite {
        private var xmlData:XML;
        private var uReq:URLRequest;
        private var uLoader:URLLoader=new URLLoader();
        private var uVar:URLVariables=new URLVariables();
        public function sendAndLoadEX() {
            startLoad();
        }
        /*
        加載url
        */
        private function startLoad():void {
            //定義參數
            uVar.param="You are now visting www.2solo.cn";//返回的參數
            uVar.vtype="xml";//返回類型
            //uVar.vtype = "var";

            uReq=new URLRequest("your url");
            //方法類型
            uReq.method=URLRequestMethod.POST;
            uReq.data=uVar;

            //定義參數格式
            uLoader.dataFormat=URLLoaderDataFormat.TEXT;
            //uLoader.dataFormat=URLLoaderDataFormat.VARIABLES;
            uLoader.addEventListener(Event.COMPLETE,completeHandler);
            uLoader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
            uLoader.load(uReq);
        }
        /*
        加載成功
        */
        private function completeHandler(evt:Event):void {
            trace("成功");
            //trace(evt.currentTarget.data.vars);
            xmlData=new XML(evt.currentTarget.data);
            parseXml();
        }
        /*
        加載失敗
        */
        private function ioErrorHandler(evt:IOErrorEvent):void {
            trace("失敗");
        }
        /*
        解析xml
        */
        private function parseXml() {
            trace(xmlData.child("param")[0]);
        }
    }



運行上例的輸出結果為:"You are now visting www.2solo.cn".我在該例子中模擬的是XML.sendAndLoad方法,服務端我使用asp做測試,代碼如下:
test.asp
<%
Response.CodePage=65001
Response.Charset="UTF-8"

if request("vtype")="xml" THEN
response.write "<?xml version=""1.0"" encoding=""utf-8""?><data>"
response.write "<param>"&request("param")&"</param>"
response.write "</data>"
ELSEIF request("vtype")="var" THEN
response.write "vars="&request("param")
END IF
%> 


在sendAndLoadEX.as中,uVar.param和uVar.vtype做為兩個參數post給服務器端文件.uVar.param將作為參數返回,uVar.vtype則做為返回XML或Vars的判斷.上例中,如要測試Loadvars.sendAndLoad,可以將:
//uVar.vtype = "var";
//uLoader.dataFormat=URLLoaderDataFormat.VARIABLES;
//trace(evt.currentTarget.data.vars);
的注釋去掉,其中evt.currentTarget.data.vars屬性直接來自test.asp的輸出值,這點用原來的loadvars裝載返回數據的方式一樣。URLLoaderDataFormat有三個類型,除了TEXT,VARIABLES,還有BINARY做了二進制編碼的格式.最后值得一提的是,AS3允許通過URLRequestHeader對文件頭進行操作,這是一個很重要的提升.

最后附上本例源文件:
http://xiazai.VeVb.com/flash/sendAndLoadEX_2soloDOTcn.zip
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本看片一区二区三区高清 | 免费色片 | 国产精品一区在线观看 | 精品一区二区久久久久 | 亚洲午夜在线 | 久久国产精品久久精品国产演员表 | 精品久久久av | 成人在线视频播放 | 国产精品久久久久久模特 | 久久久久久久黄色片 | 国产999精品久久久久 | 黄色免费在线视频网站 | h视频在线观看免费 | 九九热欧美 | 久久视频精品 | av国产片| 久久国产午夜 | 97风流梦电影 | 亚洲性视频 | 国产精品久久久久网站 | 精品久久久久久国产 | 我爱我色成人网 | 久久久久久久久久久国产精品 | 欧美性生话视频 | 亚洲乱搞| 中文字幕在线一 | 欧美日韩网站在线观看 | 视频一区二区在线观看 | 亚洲第五色综合网 | 国产亚洲精品久久久久久久久久 | 国产成人自拍小视频 | 激情综合婷婷久久 | 日韩激情一区 | 天天看成人免费毛片视频 | 日本成人高清视频 | 色综合久久久久久久久久 | 欧美国产精品一区二区 | 国产精品二区高清在线 | 成人一级黄色大片 | 欧美一级黄色免费 | www.三区|