Home > ActionScript 3.0 | JSFL > JSFL :: SWFPanel(AS3/SWF)のメソッドを呼び出すswfPanel.call

JSFL :: SWFPanel(AS3/SWF)のメソッドを呼び出すswfPanel.call

以前のエントリーでも、MMexecuteに関してはとりあげました。では、JSFL側が、SWFPanelとやりとりしたい場合はどうでしょう。これには、JSFLのswfPanelオブジェクトには、callメソッドを使用します。

SWFPanel側での定義

ここではAS3を使用します。

AS3では、例えば表示されているHTMLに記述されたJSから、メソッドを呼び出すことができますよね。そう、ExternalInterfaceです。このExternalInterfaceは、実は使用用途はブラウザに限りません。SWFを表示しているオブジェクトをコンテナと呼びますが、そのコンテナ側のなんらかのスクリプトから、AS3のメソッドを呼び出すことが出来るわけです。JSFLとSWFPanelの場合は、Flash CS4がコンテナになり、ExternalInterface.addCallBackで登録されたメソッドを、JSFL側から呼び出すことが出来ます。

ExternalInterface.addCallbackの使い方は、第一引数に呼び出す際に使用する識別子をストリングで、第二引数で実際に関連づけるメソッドを設定します。

ExternalInterface.addCallback("callMySWF", callMeFromJavascript);

JSFL側の定義

JSFL側では、まずコンテナからメソッドが定義されているSWFPanelを探す必要があります。そう、SWFPanelは複数存在する可能性がありますからね。SWFPanelは、fl.swfPanelsとして、flオブジェクトに配列で格納されています。SWFPanelの特定には、swfPanel.nameを使用して、SWFPanelの名前をとるしか有効な手段はないようです。 swfPanelを特定したら、swfPanel.callメソッドでSWFPanelに登録されているメソッドを呼びだします。第一引数には識別子を、第二引数にはメソッドで使用する引数を渡します。

渡される引数の注意点

  • 引数値はStringに強制変換される
  • 引数値に改行コードを(\n)を含むことはできない。
for(var i=0;i<fl.swfPanels.length;i++){
var swfpanel = fl.swfPanels[i];
	if(swfpanel.name == "hogehogePanel"){
		swfpanel.call("setLog",value)
	}
}

Summer Camp 2010 野中文雄のActionScript 3.0による 三次元表現

無料  ActionScript 3.0による 三次元表現 in アップルストア 銀座

フィジカルコンピューティング ラボラトリー

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://xingxx.com/mt/mt-tb.cgi/78
Listed below are links to weblogs that reference
JSFL :: SWFPanel(AS3/SWF)のメソッドを呼び出すswfPanel.call from xingxx

Home > ActionScript 3.0 | JSFL > JSFL :: SWFPanel(AS3/SWF)のメソッドを呼び出すswfPanel.call

Search
Feeds
Tag Cloud

Return to page top