今日はFlashの話題を...。
ひょんなことでActionScriptをいじるハメになってしまいました。
ということで今日は、引数をswfファイルに渡して、swfファイルで渡した引数を
表示するプログラムを作ります。
ソフトはAdobe Flash CS4 Professionalを使っていますが、CS3でも特に問題は
ないと思います。今回はActionScript3.0で書きます。
ひょんなことでActionScriptをいじるハメになってしまいました。
ということで今日は、引数をswfファイルに渡して、swfファイルで渡した引数を
表示するプログラムを作ります。
ソフトはAdobe Flash CS4 Professionalを使っていますが、CS3でも特に問題は
ないと思います。今回はActionScript3.0で書きます。
まずはFlashでデータを作ります。
1.次の画面からはFlashファイル(AS 3.0)を選択し、任意の名前をつけます。(図1)

ファイル→新規→Flashファイル(AS 3.0)の順にクリックして、任意の名前をつけ
ることもできます。
ここでは、vartest.flaという名前にしています。
2.レイヤー1の1フレーム目を右クリックしてアクション選択して、アクション
フレームを出します。
3.ここに次のプログラムを書きます。
上の青いチェックボタンを押して、シンタックスエラーチェックします。
これでエラーがないか確認します。(図2)

3.ファイル→パブリッシュの設定を選択し、パブリッシュの設定をします。
ここでは、Flash(swf)とHTMLにチェックを入れて、パブリッシュボタンを押しま
す。(図3)

パブリッシュボタンを押すとflaファイルを保存したところと同じフォルダに
vartest.swfファイルとvartest.htmlファイルが生成されます。
4.vartest.htmlを編集します。
4-1.秀丸などのテキストエディタでvartest.htmlファイルを開いて、次の
JavaScriptの関数を探します。
AC_FL_RunContent
たくさん引数がずらずらとあります。
引数に...
を追加します。
この場合は変数myStrにaaa、変数myNumに555を入れてswfファイルを呼び出します。
修正後はこんな感じになります。
JavaScriptを有効にしていれば、4-1だけでも動きますがJavaScriptを無効にし
ている場合も追加しておきます。
など、paramタグがずらずらと並んでいるところに...。
を追加します。
4-3.embedタグの追加
もうひとつ、embedタグの要素を追加します。
のところを...。
FlashVars="myStr=aaa&myNum=555"を追加します。
このような感じになります。
それでは、vartest.htmlをブラウザで開いてみます。
おお~。swfファイルでHTMLで指定した名前と引数が表示されました~。(図4)

今回はActionScript3.0で書きましたが、1.0と2.0はActionScriptのソースが異
なります。
ActionScript1.0と2.0についてはまた来週にします。
つづく~。
1.次の画面からはFlashファイル(AS 3.0)を選択し、任意の名前をつけます。(図1)

ファイル→新規→Flashファイル(AS 3.0)の順にクリックして、任意の名前をつけ
ることもできます。
ここでは、vartest.flaという名前にしています。
2.レイヤー1の1フレーム目を右クリックしてアクション選択して、アクション
フレームを出します。
3.ここに次のプログラムを書きます。
// テキストフィールドの作成
var output_txt:TextField = new TextField();
// 結果文字列
var result_str:String = "";
// Flashで受け取る引数をオブジェクト化する
var flashVars:Object = loaderInfo.parameters;
// テキストを左揃えにする
addChild(output_txt);
output_txt.autoSize = TextFieldAutoSize.LEFT;
// 引数を代入
for (var name_str:String in flashVars) {
result_str += name_str;
result_str += " = ";
result_str += flashVars[name_str];
result_str += "\n";
}
// 結果を表示
output_txt.text=result_str;
上の青いチェックボタンを押して、シンタックスエラーチェックします。
これでエラーがないか確認します。(図2)

3.ファイル→パブリッシュの設定を選択し、パブリッシュの設定をします。
ここでは、Flash(swf)とHTMLにチェックを入れて、パブリッシュボタンを押しま
す。(図3)

パブリッシュボタンを押すとflaファイルを保存したところと同じフォルダに
vartest.swfファイルとvartest.htmlファイルが生成されます。
4.vartest.htmlを編集します。
4-1.秀丸などのテキストエディタでvartest.htmlファイルを開いて、次の
JavaScriptの関数を探します。
AC_FL_RunContent
たくさん引数がずらずらとあります。
引数に...
'FlashVars', 'myStr=aaa&myNum=555',
を追加します。
この場合は変数myStrにaaa、変数myNumに555を入れてswfファイルを呼び出します。
修正後はこんな感じになります。
AC_FL_RunContent(4-2.paramタグを追加します。
'codebase',
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
'width', '550',
'height', '400',
'src', 'vartest',
'quality', 'high',
'pluginspage', 'http://www.adobe.com/go/getflashplayer_jp',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'vartest',
'bgcolor', '#ffffff',
'name', 'vartest',
'menu', 'true',
'allowFullScreen', 'false',
'allowScriptAccess','sameDomain',
'movie', 'vartest',
'FlashVars', 'myStr=aaa&myNum=555',
'salign', ''
); //end AC code
JavaScriptを有効にしていれば、4-1だけでも動きますがJavaScriptを無効にし
ている場合も追加しておきます。
<param name="allowScriptAccess" value="sameDomain" />
など、paramタグがずらずらと並んでいるところに...。
<param name="FlashVars" value="myStr=aaa&myNum=555" />
を追加します。
4-3.embedタグの追加
もうひとつ、embedタグの要素を追加します。
<embed src="vartest.swf" quality="high" bgcolor="#ffffff" width="550"
height="400" name="vartest" align="middle"
allowScriptAccess="sameDomain" allowFullScreen="false"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer_jp" />
のところを...。
FlashVars="myStr=aaa&myNum=555"を追加します。
このような感じになります。
<embed src="vartest.swf" FlashVars="myStr=aaa&myNum=555" quality="high"
bgcolor="#ffffff" width="550" height="400" name="vartest" align="middle"
allowScriptAccess="sameDomain" allowFullScreen="false"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer_jp" />
それでは、vartest.htmlをブラウザで開いてみます。
おお~。swfファイルでHTMLで指定した名前と引数が表示されました~。(図4)

今回はActionScript3.0で書きましたが、1.0と2.0はActionScriptのソースが異
なります。
ActionScript1.0と2.0についてはまた来週にします。
つづく~。














このサイトの情報で、パラメータの受け取りができるようになりました。ありがとうございました。
一つ教えて欲しいのですが、
swfファイルの引数をFLASH as3.0で受け取る方法を
教えて頂けないでしょうか。
例:
sample.swf?parm1=9999
としたときのFLASH側のコーディングを知りたいです。
AS3.0では、
_root(parm1)というやり方は使えないと言うことなので、
まったくわかりません。