Flashを指定フレームから再生
WEBページにエンベッドされたFlashを、指定フレームから再生したい場合、以下の2つの方法がある。
・JavaScriptを使って再生を制御
・変数を渡して、Flashの最初のフレームで処理
JavaScriptでFlashを制御できる。再生のみでなくズームや再生状況を調べる事も可能。
→ [Macromedia] JavaScriptでムービーを制御する
ただし、LiveConnect機能をサポートしていないブラウザでは動作しない。MacOS9のIEなどがそれにあたる。
変数を渡す場合、HTMLのタグに「flashvars」というパラメーターを追加する事でSWFに変数を渡す事ができる。Flash5以前では「XXX.swf?frame=3」という記述も可能。
指定変数に指定した値が初期値として代入されているので、最初のフレームで
this.gotoAndPlay(frame);
などと記述し、指定フレームから再生。
→ [FLASH-japan] パラメーターの受け取りについて
前者の場合、LiveConnectを実装していないブラウザでは動作しないというデメリットあるが、現在ほとんどのブラウザで動作するの問題ないと思う。それよりも、いきなり指定フレームから再生開始するので、ムービーの読み込みなどの初期処理がやりにくい構造になる場合がある。
後者は初めのフレームで処理をするため、わずかに1フレーム目が表示されてしまうデメリットがある。しかし、ムービーの初期処理がしやすい構造なので、1フレーム目をページ背景色と同色にして目立たなくしたり、ムービーロードのタイミングを調節する事で対応はしやすいのではないだろうか。
※ページ全体をFlashで作ってしまう事が一般的になって来ているので、このような動作が必要になる機会は少なくなるかも…。