AS 3ノート(13)、sendAndLoadの後継者

3511 ワード

As 2にはLoadVarsとXMLの両方にsendAndLoad方法があり、この方法は使用できます。 POST 方法は指定されたURLにパラメータを送信し、サーバーの応答をダウンロードしてパラメータを受け入れる。As 3.0の前に、最も普及しているデータ通信方法の一つである。AS 3.0以降、XML方法はE 4 Xの仕様を参照して定義されており、sendAndLoad方法はすでになく、LoadVarsは既にない。 類は更に消えてなくなりました。実はAS 2の中で、sendAndLoad方法の設計は不合理で、両方のデータオブジェクトの中に存在していて、構造は同じであることが分かりました。今はいいです。AS 3.0の中にこの機能をよくカプセル化しました。これはURLLoaderの登場です。URLLoader クラスはテキスト、バイナリデータまたは URL 符号化変数の形式は URL データをダウンロードします。 テキストファイル、XMLをダウンロードしています。 ダイナミックデータ駆動アプリケーションに関する他の情報の場合に有用です。既存のvariablesとxmlのデータロード方法の他に、現在はバイナリデータの方法が追加されています。これはとりあえず、AS 2のsendAndLoadをシミュレートする方法を説明します。これらの方法を完成するには、以下のような助けが必要です。URLRequest クラス  URLVarables類  URLRequest クラス用に単一のHTTPを捕獲する 要求中のすべての情報、URLVarables クラスはFlashでできます アプリケーションとサーバの間で変数を転送します。詳細は、ヘルプを参照してください。次の例はsendAndLoad方法の例です。sendAndLoadEX.as/*@Author:frank Site:www.2 solo.cn Date:2008.02.15 Info:sendAndLoad*/package {     import flash.events.*;    import flash.net.*;    import flash.display.Sprite;    public クラス sendAndLoadEX extens Sprite {         prvate var xmlData:XML;        prvate var ウレq:URLRequest        prvate var u Loader:URLLoader=new URLLoader()        prvate var uVar:URLVar ables=new URLVarables()        public 機能 sendAndLoadEX() {             startLoad()        }         /*         ローディング        */         prvate 機能 startLoad():void {             //パラメータを定義            uVar.param=「You」 エリア now visting wwww.2 solo.cn"///戻りパラメータ            uVar.vtype="xml"タイプを返します            //uVar.vtype = "var";            uReq=new URLRequest("your" url");            //メソッドの種類            u Req.method=URLRequest Method.POST;            ureq.data=uVar;            //パラメータの書式を定義            u Loader.data Format=URLLoaderData Format.TEXT;            //u Loader.data Format=URLLoaderData Format.ValABLES;            u Loader.addEvent Listener(Event.C OMPLETE、complette Handler);            uLoader.addEvent Listener(IOErrEvent.IO_ERROR,ioError Handler;            uLoader.load(uReq)        }         /*         読み込み成功        */         prvate 機能 compleete Handler(evt:Event):void {             トラック(「成功」)            //trace(evt.current Target.data.vars)            xmlData=new XML(evt.current Target.data)            パーrseXml();        }         /*         読み込みに失敗しました        */         prvate 機能 ioError Handler(evt:IOErrEvent):void {             トレイ(「失敗」)        }         /*         解析xml        */         prvate 機能 パーrseXml() {             trace(xmlData.child)[0];        }     } }  上記の例の出力結果は「You」です。 エリア now visting www.2 solo.cn."この例ではXML.sendAndLoad方法をシミュレーションしていますが、サーバー側はaspを使ってテストしています。コードは以下の通りです。 request("vtype"="xml" THENレスポンス.write "ダタ>「レスポンス.write」 "「&request("param")」「reponse.write」 "「ESEIF」 request("vtype"="var" THENレスポンス.write "vars="&request("param")END IF%  sendAndLoadEX.asでは、uVar.paramとuVar.vtypeを2つのパラメータpostとしてサーバ端ファイルに送ります。uVar.paramはパラメータとして戻ります。uVar.vtypeはXMLまたはVarsに戻ると判断します。上記の例では、Loadvars.sendAndLoadをテストするなら、/uvaar.sendAndLodLodLoadを行うことができます。 = "var"///u Loader.data Format=URLLoaderData Format.ValABLEStrace(evt.current Target.data.vars)のコメントを削除します。evt.current Target.data.vars属性は直接test.aspからの出力値です。これは元のloadvars搭載でデータを返す方式と同じです。URLLoaderData Formatは三つのタイプがあります。TEXT、VRIABLESのほかに、BINARYはバイナリコードのフォーマットを作りました。最後に、AS 3はURLRequest Headerを通じてファイルヘッドを操作することができます。これは重要なアップグレードです。最後にこの例のファイルを添付します。http://xiazai.jb51.net/flash/sendAndLoadEX_2ソロDOTcn.zip