1

私は答えを見つけるために4日間研究してきました。このサイトで提供されているソリューションのいくつかを含む、コードのいくつかのソリューションに出くわしました。ただし、サイトで作成しようとしている結果を生成するものはありません。
プロジェクトは: XML データを使用してメディア プレーヤーを作成しています。返されたすべてのデータを 1 つのクラスからパブリック配列に入れて、それ (そのクラスのパブリック配列) をまったく別のクラスで使用できるようにすることを目標として、これまで 2 つの異なる方法で XML データを解析してきました。
戻り値を試してみましたが、実験した後、イベント ハンドラー関数から戻り値を取得することさえできないと思います。このサイトの投稿で説明されているように値を設定しました。ただし、値はその関数の XML データのみを保持するため、他のクラスでパブリック変数として使用することはできません。

public function getXML(xmlUrl:String):void{
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest(xmlUrl));
xmlLoader.addEventListener(Event.COMPLETE, LoadXML2);
};
public function LoadXML2(evt:Event):void{
_xmlData = XML(evt.currentTarget.data);
_albArray=[];
_albArray = parseXML2(_xmlData);
};

関数 LoadXML2 (「2」は、どちらも元のコード試行の 2 番目のバージョンであるため存在します) で、_albArray の値が設定され、返す必要のあるオブジェクトが返されます。問題は、値がこの関数でのみ設定され、_albArray が他のクラスからアクセスできるクラスのパブリック変数であっても、返されたデータにアクセスできないことです。これはイベント ハンドラーであるため、単純に関数自体を呼び出して別のクラスから値を取得することはできません。何かご意見は?

4

1 に答える 1

0

上記で提示したコードは機能する必要があります。_Albarrayには、XMLがロードされると正しい値が含まれ、値は他のクラスから読み取り可能になります。parsexml2関数が機能していないのでしょうか?それとも私はあなたの質問を誤解しましたか?

XML のロードが失敗した場合に備えて、IOErrorEvent.IO_ERROR をリッスンすることも検討する必要があります。

于 2012-12-16T03:24:32.487 に答える