&を呼び出す際に、呼び出し元から返されたオブジェクトをURLに作成する必要があります。ここに私ができることが必要です。URLLoader.load呼び出しから返された文字列を処理する必要があります
- 私はWebサーバーと通信するクラスを持っています。
- 私はこのクラス(getPersonと呼ばれる)に、Webサーバーから返されたXMLデータから読み込まれたPersonオブジェクトを返す関数があります。
私が実行している問題(これは非常に一般的な問題ですが、私が見ることができる解決策は見当たりませんでした)は、URLLoaderのロードメソッドが非同期であることです。
XMLを解析してオブジェクトをイベントハンドラに取り込むEvent.COMPLETEイベントでイベントリスナーを起動しましたが、元々このオブジェクトを元のgetPerson関数?
サーバーからの戻りが戻ってくるまでに、私のメソッドは終了し、人口の多いPersonオブジェクトを返すことはできません。
私の質問はどのように私はこれを達成することができますか?私はまだActionScriptにかなり新しいですし、これで1日のために私の車輪を回転させています。
私は私が午前問題を示し、いくつかのサンプルコードを追加しました - 私は、私が使用しているものを単純化しています
MXMLアプリケーションファイル:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="application1_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
var d:DAL = new DAL();
d.CreateNewPerson("John Smith");
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
</s:Application>
DAL.csファイルを:
package { import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLRequestMethod; import mx.controls.Alert; public class DAL { public function DAL() { } public function CreateNewPerson(Name:String):void { var strXML:String = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onPostComplete); var request:URLRequest = new URLRequest("http://www.cnn.com"); request.method = URLRequestMethod.POST; request.data = strXML; loader.load(request); } private function onPostComplete(evt:Event):void { //Process returned string //Here is where I need to return my object var obj:Object = new Object() } } }
私がしなければならないことは何とか "obj"変数をMXMLアプリケーションファイルに戻して、そこで使用できるようにすることです。
ありがとうございます!
、オブジェクト変数をLAREとgetter/setter関数を作成します。副作用として、コードを元のコードからEvent.COMPLETEイベントに移動させるのはなぜですか? – Angelo