Shockwave Flash のメソッド
内容 (What's Covered)
この文書では、Web ページ内の他言語とのやりとりに関して記載されております。
Shockwave Flash 2.0 では、新たに Netscape の LiveConnect がサポートされ、ActiveX 対応の機能もさらに充実しています。JavaScript から Shockwave Flash を制御する、.swf ファイルから JavaScript を起動する、といったことが可能になったため、さらに高度なインタラクティブ Web ページが作成できるようになりました。ただし、JavaScript はまだ新しく発展途上の技術なので、意図したとおりの結果が得られないこともあります。また、Flash スクリプティング機能には、Netscape Navigator 3.0 (Windows 95/NT 用、または Power Mac用) か ActiveX をサポートした Internet Explorer 3.0 以上が必要です。
インターネット上には、JavaScript の優れた参考資料がたくさんあります。
スクリプティングの基礎
Flash スクリプティングには、基本的な動作が2つあります。1つは Play()、GotoFrame()、CurrentFrame() などのメソッドを使用してShockwave Flash を制御するというもので、もう1つは FSCommand を使用し、Web ページ上で Flash ボタンやフレームアクションから JavaScript コードにメッセージを送るというものです。以下にさらに詳しく説明します。
Flash メソッド
Shockwave Flash のメソッドには、以下のようなものがあります。
- Play()
アニメーションをスタートさせるためのメソッドです。 - StopPlay()
アニメーションを停止させるためのメソッドです。 - IsPlaying()
アニメーションが再生中であるかどうかを調べるためのメソッドです。再生中であれば「true」を返します。 - GotoFrame (int frameNum)
アニメーション中の指定のフレームにジャンプするためのメソッドです。このメソッドを使用する場合は、必ず存在するフレームを指定するようにしてください。指定されたフレームが存在しない場合は、自動的に最後のフレームにジャンプして再生が停止されますが、まったく予想外の処理が行われる場合もあります。 - TotalFrames()
アニメーションのフレームの総数を調べるためのメソッドです。 - Rewind()
アニメーションの最初のフレームに巻き戻すためのメソッドです。 - SetZoomRect(int left, int top, int right, int bottom)
アニメーション中の長方形の領域にズームインするためのメソッドです。このメソッドでは、座標が twips という単位 (1440インチ = 1twips) で表されます。twips を単位としたときの値を20で割ると、「ポイント」を単位にしたときの値が得られます。 - Zoom(int percent)
ズームの倍率を決めるためのメソッドです。Zoom(50) と記述すると、オブジェクトのサイズが2倍になり、Zoom(200) と記述するとオブジェクトのサイズは半分になります。また、Zoom(0) と記述すると、オブジェクトは元の大きさに戻ります。 - Pan(int x, int y, int mode)
ズームされたアニメーションをパンします。「mode」では、x座標、y座標の単位を指定します。「mode」に「0」を指定すると単位はピクセルに、「1」を指定すると%になります。 - PercentLoaded()
.swf ファイルがどのくらいロードされたかをブラウザに知らせます(単位は%です)。
HTML ドキュメントに以下のようにムービーを張り付けます。"ID" と "NAME" を記述することに注意して下さい。
Shockwave Flash ムービーの中でメソッドを呼び出す場合、<EMBED> タグや <OBJECT> タグに名前と ID を以下の例のように設定する必要があります。また、適切なバージョンの ActiveX コントロールがインストールされるよう、「#ver=2,0,0,11」というコードも必要です。
<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ID="mapcontrols" WIDTH=100 HEIGHT=100
CODEBASE="http://download.macromedia.com/flash2/cabs/swflash.cab#version=2,0,0,11"><PARAM NAME="Movie" VALUE="controls.swf">
<EMBED NAME="mapcontrols" MAYSCRIPT SRC="controls.swf" WIDTH=100 HEIGHT=100
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash2">
</OBJECT>
JavaScriptからメソッドを呼び出す場合は、以下の例のような記述をします。
<SCRIPT LANGUAGE="JavaScript">
//使用しているブラウザがInternet Explorerである場合とNetscape Navigatorである場合
//とで対応を変える必要があるため、ブラウザの種類を調べ、変数宣言します。
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
//IEとNetscapeでは、ドキュメントオブジェクトモデルが多少異なります。
//IEでオブジェクトが「window」のメンバーとして扱われるのに対し、
//Netscapeでは、埋め込まれたオブジェクトが「window.document」のメンバーとなります。
var mc = InternetExplorer ? window.mapcontrols : window.document.mapcontrols;mc.Rewind();
mc.Zoom(0);
</SCRIPT>
FSCommand を使用する
Flash ボタンがクリックされたときや、ムービー中のあるフレームに到達したときにメッセージを送るには、Macromedia Flash 2J のボタンリンクプロパティかフレームアクションの GetURL で、URL ボックス内に FSCommand: とつけて、送るメッセージを入力します。URL ボックス中の FSCommand に続くテキストを command string と呼び、ターゲットボックス中のテキストを args string と呼びます。
これらの文字列は JavaScript にメッセージを伝える役割を果たし、必要に応じてどんな用途にも使用できます。FSCommand メッセージに JavaScript で応答するには、以下に示すようなコードを使用します。mapcontrols には、FSCommand メッセージを送信する Flas hムービーの <OBJECT> タグや <EMBED> タグに設定されたものと同じ名前や ID を設定する必要があります。
<SCRIPT LANGUAGE="JavaScript">
//使用しているブラウザが Internet Explorer である場合と Netscape Navigator である場合
//とで対応を変える必要があるため、ブラウザの種類を調べ、変数宣言します。
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
//FSCommand メッセージは、すべて Flash ムービーの関数の中で処理します。
function mapcontrols_DoFSCommand(command, args) {
//IE と Netscape では、ドキュメントオブジェクトモデルが多少異なります。
//IE でオブジェクトが window のメンバーとして扱われるのに対し、
//Netscape では、埋め込まれたオブジェクトが「window.document」メンバーとなります。
var map = InternetExplorer ? parent.fw_map.map : parent.fw_map.document.map;
if ( command=="home" ) {
map.Rewind();
map.Zoom(0);
} else if ( command=="zoom" ) {
//args に指定された倍率でズームインをします。
map.Zoom(parseInt(args)); } }}
</SCRIPT>
<SCRIPT LANGUAGE="VBScript">
//VB スクリプトイベントを JavaScript メソッドにマッピングします
//(Netscape は、このコードを無視します)。
//FSCommand は ActiveX を使用して VB イベントを発生させるので、ここでそれに対応します。
Sub mapcontrols_FSCommand(ByVal command, ByVal args)call mapcontrols_DoFSCommand(command, args)end sub
</SCRIPT>
ActiveX を使用する場合
Flash の ActiveX バージョンには、Visual Basic スタイルのプロパティがあります。詳細については、Macromedia Flash の完全版に添付されているサンプルの HTML ドキュメントを参照してください。
LiveConnect を使用する場合
Netscape プラグインを使用する場合は、.swf ファイルのGetURLアクションの中で「javascript:」という形式の URL が使用できます。使用するブラウザが Netscape Navigator だけであれば、この URL を FSCommand の代りに使用できます。
追加情報
以下に関連するテクニカルノーツを記載します。
- JavaScript でムービーを制御する (fl0017)
- 文書番号 228681 Flash4で新しくサポートされたスクリプトメソッド
- Publishing and Exporting - Flash Methods (Airticle: Publishing and Exporting) (英文のみ)
関連ドキュメント (Related Records)
ドキュメント情報 (Document Details)
| 最終更新 (Last Update): | 2006-04-22 |
|---|---|
| 文書番号 (ID): | 228636 |
| プラットフォーム (OS): | Macintosh, Windows |
| バージョン (Product Version): | 2 |
| リンク (Permanent Link) : | http://go.adobe.com/kb/ts_228636_ja-jp |
| 関連製品 (Product Affected): | flash |