ActionScript3で質問です。


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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/04/13 02:51:02
  • 終了:2008/04/13 12:34:39

回答(1件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/04/13 10:09:00

ポイント60pt

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


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

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

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

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


参考サイト

id:makocan

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

何とか解決できました。

2008/04/13 12:34:32

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません