• 締切済み

SetTimeoutの無効化について

Flash初心者ですが、よろしくお願いします。 SetTimeoutを使って、30秒たつと別のシーンにとぶように設定したswfを作っています。 配置しているボタンを押した時など、30秒たつ前にシーンが変わった場合、SetTimeoutの設定を無効にしたいのですが、どうすればよいでしょうか? 現在のスクリプトは以下のようになっています。 onClipEvent (load) { var id = setTimeout(go, 30000); stop(); function go() { clearTimeout(id); gotoAndPlay("シーン 3", "timeover"); } } 色々検索してみましたがわかりません・・・ どなたか分かる方がいらっしゃればご教授お願いします>_<

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

setInterval や setTimeout の問題ではなくて, 単にターゲットパスとか階層とかが理解できていないだけではないでしょうか? 例えば, 「my_mc」 というインスタンス名を付けたムービークリップ(MC)を, シーン1 などのメインのタイムラインつまり _root に配置して, その 「my_mc」 に書かれていらっしゃるようなスクリプトを書いたとします。 ※ ↑要インスタンス名 ---例------------------------ onClipEvent (load) { var id = setTimeout(go, 5000); stop(); function go() { trace("あいうえお"); } } ---------------------------- そして,「制御」→「ムービープレビュー」すると, 当然,5秒後に あいうえお が出力窓に出力されます。 この, var id = setTimeout(go, 5000); によって設定された 「id」 は 「my_mc」 階層に設定されています。 次に, シーン1 などのメインのタイムラインつまり _root に, 適当なボタンを作成して次のように書いたとします。 ---例------------------------ on (release) { clearTimeout(_root.my_mc.id); } ----------------------------- そして,「制御」→「ムービープレビュー」し, 5秒以内にそのボタンをクリックすると何も出力されません。 つまりこれで, _root にある 「my_mc」 内の 「id」 がクリアされます。 「ターゲットパス」 http://homepage3.nifty.com/ginga-b/MX/targetpath.html ↑当然ですがsetTimeoutに関しては一切書かれていません。  setTimeout や gotoAndPlay などにかかわらず。  Flash 全般にかかわることです。

関連するQ&A

専門家に質問してみよう