[PR]テレビ番組表
今夜の番組チェック




FlashからJavaScriptの関数を実行する


サンプルをダウンロード






JavaScriptのユーザー関数をひとつ作ります。HTML側で以下のタグを追加します。

HTMLにJavaScriptの関数を作成

<HTML>
  <HEAD>

<script language="JavaScript">
<!--
function myFunc(){
}
//-->
</script>

  </HEAD>
<BODY>
  <EMBED>Flash表示部分</EMBED>
</BODY>
</HTML>



Flash側で以下のアクションスクリプトを実行します。するとJavaScriptの関数を実行させることが出来ます。

FlashからJavaScriptの関数を実行

	getURL("javascript:myFunc();");









また、JavaScriptに値を送信したいときは、引数に値を入れると渡すことが出来ます。

HTMLにJavaScriptの関数を作成

<HTML>
  <HEAD>

<script language="JavaScript">
<!--
function myFunc(msg){
	alert(msg);
	
}
//-->
</script>

  </HEAD>
<BODY>
  <EMBED>Flash表示部分</EMBED>
</BODY>
</HTML>

alert()警告ダイアログを表示するメソッド



Flash側で以下のアクションスクリプトを実行します。

FlashからJavaScriptの関数を実行

  getURL("javascript:myFunc('Hello');");







引数に変数値を指定するときは記述が少し複雑です。

FlashからJavaScriptの関数を実行

  var msg = "Hello";
  getURL("javascript:myFunc(" + "'" + msg + "'" + ");");









注.日本語のコードでやり取りしたいときは、ブラウザがIE限定となります。その他のブラウザでは、エンコード方式が違うため日本語がうまく変換されません。 どうしても他のブラウザで日本語のやり取りしたいときは自分でブラウザごとにコードの変換プログラムを組めば出来ないことも無い(?)ようですが、難しいので基本的にIE限定と考えた方がいいでしょう。







JavaScriptからFlashにデータを送信する


サンプルをダウンロード








1.名前を付ける

HTMLにあるFlashを表示している<OBJECT>タグ<ENABLE>タグに、名前を追加します。2つとも同じ名前をつけます。


<OBJECT 
  id="test" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/
swflash.cab#version=5,0,0,0"
  WIDTH=400
  HEIGHT=300
>
<PARAM NAME="test" VALUE="navigator.swf">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED
 src="navigator.swf"
 quality=high
 bgcolor=#FFFFFF
 WIDTH=400
 HEIGHT=300
 TYPE="application/x-shockwave-flash"
 PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?
P1_Prod_Version=ShockwaveFlash"
>
</EMBED>
</OBJECT>




2.JavaScriptからFlashに変数を送信する

JavaScript側でSetVariable()関数を実行します。

window.document.先ほど付けた名前.SetVariable(
"Flash側の変数名のパス",
JavaScript側で送信したい値
);


ブラウザ名を取得

window.document.test.SetVariable("_level0.hyouji", navigator.appName);


SetVariable()値を送信するメソッド
navigator.appNameブラウザ名を取得するプロパティ