電子書籍の厳選無料作品が豊富!

教えて下さい。

自分のHPのトップ画面にフラッシュを流しています。
それが終わると自動的にメニュー画面に映るようにしているのですが、
<SCRIPT type="text/javascript">
<!--
setTimeout("link()", 43000);
document.write('43秒後にに移動します');
function link(){
location.href='./top.php3';
}
-->
</SCRIPT>
こんな感じの時間指定しかやり方がわかりません。
フラッシュの時間をはかって大体の時間でメニュー画面にいくようにしているのですが、それではなく、フラッシュが終わったらメニュー画面に行くようにするには、どうすればいいでしょうか?

お願いします。

A 回答 (1件)

>> フラッシュが終わったら



何をもって,Flash の終了としているのかがわからないので回答できません。

例えば,
変数の値が 0→1→2→…→99→100 と変化し,
100 になったとき,他のページに移動するのであれば

---------------------------
onClipEvent (enterFrame) {
ある変数++;
if(ある変数 == 100){
getURL("他のページのURL");
}
}
---------------------------

のようになるでしょうし,
タイムラインを使ってアニメーションが流れていて,
最終フレームまでアニメーションが再生されたときに他のページに移動するのであれば,
単に最終フレームをキーフレームにして,
そのキーフレームを選択した状態で,アクションパネルを表示させ,

----------------------------
stop();
getURL("他のページのURL");
----------------------------

と書けばいいだけのことになります。
これ↑のことでしょうか?


また,書かれている JavaScript と同様にしたいのであれば,
_root に msgbox というインスタンス名のダイナミックテキストを用意しておいて,
43秒カウントを始めたい場所(フレーム1?)に次のように書けば良いと思います。

-----------------------------
setTimeout(link, 43000);
_root.msgbox.text = "43秒後にに移動します";
function link() {
// 相対パスでも可↓
getURL("http://www.google.co.jp/");
}
-----------------------------

ただし,
上記 ActionScript の setTimeout は Flash 8 以降でないと使えません。

※ というか,ヘルプにも,Flash 8 の
  ActionScriptエディタの項目にも無いのに,
  なぜか setTimeout 関数が Flash 8 では使えます。
  なぜだかわかりませんが,参考URL↓。
  http://www.fumiononaka.com/TechNotes/Flash/FN051 …

Flash MX 2004 ,Flash MX をお使いだとだと,setInterval 関数を使うことになると思います。
http://livedocs.macromedia.com/flash/8_jp/main/0 …
また,Flash 5 だと,getTimer() と onEnterFrame の組み合わせでなんとかなると思います。
また,Flash 4 だと,getTimer() の連続呼び出しでなんとかなると思います。


とにかく,何をもって,Flash の終了としているのかがわかりません。
もし上記内容で解決できなければ,補足説明してください。
わかれば回答します。

また補足説明される場合はご使用の Flash のバージョン,
もしくは,
パブリッシュしたい SWF のバージョンを書いてください。
同じ事を説明するにも,バージョンによって回答が変わる場合があります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!