これは Flash アクション スクリプト 3 にあります。これが私のクラスです。クラスに xml をロードしました。次に、メイン ページの後で、xml に基づいてステージ上で何かを作成するなど、いくつかのことを実行したいと考えています。ヘルプ
関数が呼び出されるまでにxmlがまだロードされていないため、機能しない理由を理解しています。これを解決する方法がわかりません。おそらくイベントリスナーを追加しますか?
package {
public class LoadXMLAdventure {
var adventureXML: XML;
var xmlReq:URLRequest;
var xmlLoader:URLLoader = new URLLoader();
var _currentRoom:int;
public function LoadXMLAdventure(xmlFileName:String) {
xmlReq = new URLRequest(xmlFileName);
xmlLoader.load(xmlReq);
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
}
function xmlLoaded(event:Event):void{
adventureXML = new XML(xmlLoader.data)
//trace( adventureXML.toXMLString() )
}
public function myFunction():void{
trace(adventureXML.toXMLString()) //this does not work
}
}
}
私のメインページで
var game:LoadXMLAdventure = new LoadXMLAdventure("file.xml");
game.myFunction();
アップデート
メインページで関数を呼び出して、クラス内のステージ操作を実行できるようにしたいのですが、未定義のメソッドというエラーが発生します
function xmlLoaded(event:Event):void{
adventureXML = new XML(xmlLoader.data)
this.dispatchEvent( new Event("showRoom") );
}
これは舞台の上
stage.addEventListener("showRoom",showRoom);
function showRoom(e:Event):void{
trace("showroom hello")
}