Tech Flash HomePage


■アクションベースの操作方法


◎各種ブラウザでの再生について


 本応用例のサンプルプログラムはInternetExplorer Ver.6, NetscapeNavigator 7.1, MozillaFirefox 1.0.1、Opera7.54u1の4種類のブラウザで再生テストを行っています。

※アクションベースの操作方法は、キャラクターの操作方法をご覧になってから見るようにお願いします。

【JavaScriptでアクションベースの変数を操作する。】

   当ホームページでは、フラッシュの外部操作をJavaScriptを使って操作する方法を紹介しています。

  まず、はじめにフラッシュに変数を設定するために関数を設けます。関数のタグを置く場所は、HTML上の <HEAD>〜</HEAD>の間か、<BODY>〜</BODY>の間に置いてください。
  つぎにアクションベースのSWFファイルを、<BODY>〜</BODY>の間に、表示したい位置に設置します。上記のことに注意して、アクションベースを操作してみましょう。

 【変数を操作するための関数について】

 基本として、SetVariable()で変数の値をフラッシュ・ムービーに設定しています。           
          
      whichObj("id").SetVariable("変数名", 変数に代入したい数値);

 ホームページが開かれたとき、フラッシュ・ムービーに関数を実行して変数を設定する方法はonLoadでイベントとして関数を実行することで行っています。
 setTime()を使用するのは、InternetExploreとNetscape、FireFoxでは、ブラウザーのファイルを認識し実行する順番が異なることから、onLoad()した際、JavaScriptの関数をフラッシュのオブジェクトをブラウザーが認識する前に実行するからです。そのため、setTimeout()を利用することで、HTML上の全てのファイルを認識した上で関数を実行するようにします。  

      <body onLoad="setTimeout('関数名',数値)"> 〜</body>  

※数値を設定すると(大方1000=1秒)、時間を置いてから関数を実行します。本来、setTimeoutはタイマーに利用されることが多いです。
※例として、見本内のソースをご覧ください。

<body onLoad="setTimeout('sample()',0)"> 〜</body>

 関数を複数実行したいときは

   onLoad="setTimeout('関数名1',数値);setTimeout('関数名2',数値)"

  のように関数名と関数名を ; で区切ります。

--------------------------------------------------------------------------------------
例1)海辺の背景の上で犬のキャラクターを走らせる。

<HTML>
<HEAD>
<title></title>
<script language="JavaScript" type="text/javascript">
<!--
function whichObj(objName)
{  
if (navigator.appName=="Microsoft Internet Explorer") return window[objName]; else return window.document[objName];
}
function sample()
{
whichObj("sample1").SetVariable("time", "2");
whichObj("sample1").SetVariable("object1", "dog4.swf");
whichObj("sample1").SetVariable("x1", "79");
whichObj("sample1").SetVariable("y1", "16");
whichObj("sample1").SetVariable("object2", "demo_bg.jpg");
whichObj("sample1").SetVariable("x2", "0");
whichObj("sample1").SetVariable("y2", "0");
}
//-->
</script>
<HEAD>
<BODY onLoad="setTimeout('sample()',0)" >
<OBJECT id="sample1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com.flash2/cabs/swflash.cab" width="225" height="100">
<PARAM name="play" value="true" />
<PARAM name="movie" value="actionbase_demo225x100_o2_t2.swf" />
<EMBED name="sample1" src="actionbase_demo225x100_o2_t2.swf" width="225" height="100" pluginspage="http://www.macromedia.com/shockwave/download/" swliveconnect="TRUE" type="application/x-shockwave-flash">
</OBJECT>
</BODY >
</HTML>

(sampl_:actionbase_dog_run1)
     

--------------------------------------------------------------------------------------
例2)海辺の背景の上で犬のキャラクターを走らせる(改)。例1の関数sample()を入れ替えてみてください。
      
<script language="JavaScript" type="text/javascript">
<!--
function sample()
{
whichObj("sample1").SetVariable("time", "2");
whichObj("sample1").SetVariable("object1", "dog4.swf?pttern=3");
whichObj("sample1").SetVariable("x1", "79");
whichObj("sample1").SetVariable("y1", "0");
whichObj("sample1").SetVariable("xscale1", "150");
whichObj("sample1").SetVariable("yscale1", "150");
whichObj("sample1").SetVariable("alpha1", "50");
whichObj("sample1").SetVariable("rotation1", "45");
}
//-->
</script>

(sample_actionbase_dog_run2)
         

--------------------------------------------------------------------------------------
例3)海辺の背景の上に「こんにちは」と表示します。例1の関数sample()を入れ替えてみてください。
      
<script language="JavaScript" type="text/javascript">
<!--
function sample()
{
whichObj("sample1").SetVariable("time", "2");
whichObj("sample1").SetVariable("object2", "demo_bg.jpg");
whichObj("sample1").SetVariable("x2", "0");
whichObj("sample1").SetVariable("y2", "0");

whichObj("sample1").SetVariable("text_text1","こんにちは");
whichObj("sample1").SetVariable("text_x1","20");
whichObj("sample1").SetVariable("text_y1","20");
whichObj("sample1").SetVariable("text_color1","0xFFFF00");
whichObj("sample1").SetVariable("text_font1","_ゴシック");
whichObj("sample1").SetVariable("text_size1","30");
whichObj("sample1").SetVariable("text_bold1","true");
whichObj("sample1").SetVariable("text_italic1","true");
whichObj("sample1").SetVariable("text_underline1","true");
}
//-->
</script>

(sample_actionbase_text1)