|
| Name | 憲ちゃん | ||||
| Date | 2003年03月04日 (火) 01時17分 | ||||
| Message | Amazon.co.jpサイト販売の「FLASH
SERVER-SIDE SCRIPT SAMPLES」という本で説明されている Flashムービーサンプルを公開しているサイトを見つけました(^^g/~~ そこの「JavaScript」>「2.JavaScriptを使ったFlashムービーの操作」の中に・・・ 『フレームをはさんだ制御』というのがあり、 これが正にこれまで、いろいろな方からご質問があったにもかかわらず、 憲ちゃんが分からなかったものそのものでした(;^_^Aアセアセ・・・ できるのですねぇ(^^; サンプルムービーだけなので、詳しい解説は3,200円で本を購入しないとわからないのですが、 核心部分は、メニューswfを埋め込んだHTMLファイルに書かれたJavaScriptですから、 それはサンプルページのソースを見れば借用できますよネ(笑) そこ書かれていたスクリプトは・・・ <script language="JavaScript" type="text/JavaScript"> <!-- function gotoFrame( label ) { var movie = getFlashObj( parent.main.document, "movie" ); if( movie != null ) { movie.TGotoLabel( "/", label ); movie.Play(); } } function getFlashObj( doc, name ) { if( document.all ) return doc.all[ name ]; else if( document.layers ) { return doc[ name ]; } else return null; } //--> </script> どういう意味のことを書いてあるかお知りになりたい方は、是非本をご購入いただくとして、 ここでは、理屈抜きでこれを活用させていただくことにします(笑) スクリプトの中で留意するところは、太字の部分!! gotoFrame( label ) ここが同じHTML内に配置された「menu用」のFLASHムービーとの接点です。 FLASH側からJavaScriptのメソッドを呼び出す方法は幾つかありますが、例えば・・・ ボタンクリックで、 on(release){ getURL(”JavaScript:gotoFrame(’具体のラベル名’)”,”_self”); } 「具体のラベル名」というのは、 mainという名前【※1】のフレームにあるHTMLファイルの、 movieという識別名【※2】をもつFLASHムービー(swf)の中の「フレームラベル」を指します。 ということでフレームやファイルの構成ですが・・・ ![]() @「index.htm」でフレームを左右に分割、それぞれ「menu」「main」というフレーム名を付けます。 mainフレームにコンテンツ表示用のswfを配置するので、 この名前とJavaScriptの【※1】の名前と一致させます。 A「menu.htm(左menuフレーム)」の<HEAD>〜</HEAD>の中に上記JavaScriptを記載するとともに、 <BODY>以下に、メニュー用swf「menu.swf」埋め込みタグを普通に記載。 B「main.htm(右mainフレーム)」の<BODY>以下に「main.swf」埋め込みタグを記載。 その際、【※2】のムービー識別名を必ず記載します。(通常の場合は省略可) <OBJECT ・・・WIDTH=400 HEIGHT=400 ID="movie"> <PARAM NAME=movie VALUE="main.swf"> <PARAM NAME=quality VALUE=high> ・・・・・・・・・・・・・・・・・ <EMBED src="main.swf" quality=high ・・・WIDTH=400 HEIGHT=400 name="movie"> </EMBED> </OBJECT> C「menu.swf」にはメニューボタンを配し、上記JavaScriptの「function関数」で定義された メソッド名(この場合は”gotoFrame(変数label)”)を呼び出します。 「変数label」には、以下D「main.swf」内で設定するフレームラベル名を具体的に記載します。 on (release) { getURL ("JavaScript:gotoFrame('flash2');", "_self"); } ※ここの”flash2”が「main.swf」内の具体のラベル名です。 D「main.swf」、「menu.swf」のボタン操作によって制御されるコンテンツ用ムービー。 ![]() 例えば、こんな感じで、ラベルレイヤーにそれぞれ「top」「flash1」「flash2」という フレームラベルを付けています。 ※サンプルはココをクリックしてください(^^) 単に、左のメニュームービーのボタンで右フレームのコンテンツムービーを制御するだけのことなら、 何もこんな面倒なことをしなくても、左右一体のムービーにするほうが動きもスムーズです。 特にネットスケープの場合、JavaScriptの解釈に時間を要する場合もあるとか・・・ |
||||
| Response
01 |
|
||||
| このページの先頭へへ |