人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ActionScript3で質問です。

xmlLoader.addEventListener(Event.COMPLETE, onXMLloaded);
とすることで、XML等の読み込みが完了した後に、
onXMLloadedが呼ばれるようにする事が可能になりましたが
読み込まれるまで、プログラムの進行を中止する方法はありませんでしょうか??
※XMLファイルが読み込まれるまでは、以降のプログラムを動作させたくないので。。。


●質問者: makocan
●カテゴリ:インターネット ウェブ制作
✍キーワード:ファイル プログラム XML
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● pahoo
●60ポイント

ActionScriptで質問です」の続きだと思うのですが、前にも回答したとおり、読み込みのロジックを示していただかないと適切な回答ができません。


おそらく、Event.COMPLETE イベントが発生する前に他のスレッドが動いてしまうのだと思いますが、ActionScriptはシングルスレッドかつイベント駆動型の言語なので、これは仕様通りの動きです。

この問題を回避するためには、グローバル変数でflagを用意しておき、初期状態ではfalse、onXMLloadedの中でtrueを代入するようにしておきます。他の関数では、冒頭でこのflagの状態をチェックし、falseだったら実行しないようにします。

ただし、flagがtrue化した時点で「他の関数」を再駆動しないといけないので、ロジック的に無理があります。「他の関数」の中でwhileループなどを使って待ち状態にしてしまうと、シングルスレッドであるため無限ループに陥ってしまいます。

全体のフローを「シングルスレッドかつイベント駆動型」として見直した方がいいように思います。


参考サイト

◎質問者からの返答

ありがとうございました。

何とか解決できました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ