0

XML ファイルをフラッシュにロードしたいと考えています。ほとんどのユーザーになじみのあるシンプルなコードがあります。

var myXML=new XML();
myXML.ignoreWhite=true;
myXML.onLoad()=function(success){
    if(success){
        functions_to_process_xml();
    }else{
        trace("not loaded");
    }
}
myXML.load("myxml.xml");

ここまではすべて良さそうです。しかし、同期に問題があります。swf を起動して xml ファイルをロードし、myXML.onLoad() が終了したら、他のアクションを実行させたいだけです。.onLoad() メソッドが終了した直後に関数の開始を同期することはできません。何か案は?

4

1 に答える 1

0

XML データを正常にロードして解析した後に他のアクションを実行したい場合は、あなたが持っているもので正しい軌道に乗っていると思います。XML 処理ルーチンが (ほとんどの場合) 同期的であると仮定すると、XML 解析メソッドを呼び出した後に他のアクションを初期化するだけで済みます。

私はこのようなものに行くかもしれません:

var myXML=new XML();
myXML.ignoreWhite=true;
myXML.onLoad()=function(success){
    if(success){
        xmlLoadedHandler();
    }else{
        trace("not loaded");
    }
}
myXML.load("myxml.xml");


function xmlLoadedHandler() {
    parseXML(); // most likely a synchronous process
    initOtherActions(); // XML has been loaded and parsed
}

可能であれば、ActionScript 3.0 への更新を検討してください。

于 2012-09-03T17:41:47.720 に答える