- ベストアンサー
一定時間何もしない場合に別のページへ
クリックして遊ぶムービーを作ったのですが、 操作を何もせず放置して、一定時間(5分)が経過すると、 あるURLに飛ぶように・・・という設定が出来ません。 setIntervalを使用するというところまでは分かったのですが、詳しい設定の仕方が分からず・・・。 どなたかアドバイスお願いします。 使用しているのはFLASH MX 2004で、OSはXPです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1です。 > 画面上をクリックしたりというアクションを、 > 五分間全く起こさない場合、 > あるURLへ飛ぶようにすることは可能でしょうか?? 私が勘違いをしておりましたね。 5分間何もしないのに勝手に あるURL にジャンプするのかと思ってしまいました。 結局, 5分間の間,マウスをクリックしたり動かさなければ, あるURL に飛ぶようにすれば良いわけですから, マウスを監視しておいて, マウス操作をするたびに,5分後 あるURL に飛ぶように setInterval をセットし直せば良いと思います。 したがって, 次のようなスクリプトになります。 書く場所は フレーム1 ので良いと思います。 -------------------------------------------- // 5分後にページを去るユーザー定義関数の定義 function leavePage() { // 以前の setInterval アクションをクリア clearInterval(nID); //setInterval アクションを定義して識別IDを変数nIDに設定 nID = setInterval(function () { // 違うページに飛ぶ getURL("あるURL"); // 念のため setInterval アクションをクリア clearInterval(nID); // 関数の実行間隔を5分(5×60×1000=300000ミリ秒)に指定 }, 300000); } // ユーザー定義関数 leavePage の初回実行 leavePage(); // // ------ // リスナーオブジェクト myListener の作成 var myListener = new Object(); //マウスを離したときの処理を定義 myListener.onMouseUp = function() { // ユーザー定義関数 leavePage の実行 leavePage(); }; //マウスを動かしたときの処理を定義 myListener.onMouseMove = function() { // ユーザー定義関数 leavePage の実行 leavePage(); }; //リスナーオブジェクトを登録 Mouse.addListener(myListener); -------------------------------------------- マウスクラスのメソッドについて,参考になる URL はないものか 少しだけ探してみましたが, マウスホイール のことに関するものが多く, あまり良い物がありません。 ヘルプが一番わかりやすいかもしれません。 Flashドキュメンテーション Mouse > addListener (Mouse.addListener メソッド) http://livedocs.macromedia.com/flash/8_jp/main/00002428.html
その他の回答 (1)
「setInterval Flash」 と検索すると↓, http://www.google.co.jp/search?hl=ja&q=setInterval+Flash&lr=lang_ja 2番目に出てくるページ↓, 「外部SWFムービー内のfunctionをロード直後に呼出す」 http://www.fumiononaka.com/TechNotes/Flash/FN0304001.html このページでわかりませんでしたか? 上記ページのそのページの中ほどに -------------------------------------------------- //[1]setIntervalアクションを定義して識別IDを変数nIDに設定 nID = setInterval(function () { //[2]実行する'function'が未定義かどうかを確認 if (_root.my_mc.xTest != undefined) { //[3]functionを実行 _root.my_mc.xTest(); //[4]ロードを完了したらsetIntervalアクションをクリア clearInterval(nID); } //[5]関数の実行間隔を10ミリ秒に指定 }, 10); -------------------------------------------------- と詳しく丁寧に書かれていると思いますが。 上のを変形すれば簡単だと思いますよ。 -------------------------------------------------- //setInterval アクションを定義して識別IDを変数nIDに設定 nID = setInterval(function () { // 違うページに飛ぶ getURL("違うページのURL"); // 念のため setInterval アクションをクリア clearInterval(nID); // 関数の実行間隔を5分(5×60×1000=300000ミリ秒)に指定 }, 300000); ------------------------------------------------- ↑ getURL("違うページのURL"); の 「違うページのURL」 を変えてくだされば, そのままコピペで使用できます。
お礼
丁寧な回答をありがとうございます。 早速、ムービーの1フレーム目に空白キーフレームを挿入し、そこに教えて頂いたアクションスクリプトをコピペしました。 丁度5分後に、新しいURLへ飛ぶようにはなったのですが、ムービー内でクリックをしていても、強制的に飛んでしまうようです。 (ちなみに、クリックで先に進むゲームを作っています) 画面上をクリックしたりというアクションを、五分間全く起こさない場合、あるURLへ飛ぶようにすることは可能でしょうか?? 私のコピペの設置場所に問題がありましたら、申し訳ありません。(^_^;)
お礼
何度も分かりやすく、丁寧なお答えをありがとうございます! また、私の書き方が紛らわしかったせいなので、お気になさらないで下さい。 早速教えて頂いたスクリプトを使用したところ、希望通りのものができました。 コピペだけでいけるように、全文書き出して下さってありがとうございます。アクションスクリプトはまだまだ勉強中なので、とても助かりました。 また、参考URLも拝見させて頂きました。これからの制作で参考になりそうです。ご親切に、感謝です(^^)