アクセシビリティ

TechNote

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 の代りに使用できます。


追加情報

以下に関連するテクニカルノーツを記載します。


関連ドキュメント (Related Records)

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

ドキュメント情報 (Document Details)

文書番号 (ID):228636
プラットフォーム (OS):Macintosh, Windows

関連製品 (Product Affected)

flash

問題は解決しましたか?

はい
いいえ


最大300文字