Tech
Webシステムプログラマーによる、ちょっとためになる(かもしれない)情報共有ブログ
 

【第46回】HTMLソースからFlashファイルに変数を渡す(その2)

 
HTMLソースからFlashファイルに変数を渡す方法について書きました。

ActionScriptの場合は変数はHTMLソースの中で指定して、Flashファイルに渡す
ことで、Flashファイルを動的に処理することができます。

先週はActionScript3.0の場合で作ってみましたが、今週はActionScriptの
1.0/2.0の場合で作ってみます。

今回もFlash CS4 Professionalを使っています。
1.次の画面からはFlashファイル(AS 2.0)を選択し、任意の名前をつけます。(図1)

1.jpg

ファイル→新規→Flashファイル(AS 2.0)の順にクリックして、任意の名前をつけ
ることもできます。


ここでは、vartest.flaという名前にしています。

2.レイヤー1の1フレーム目を右クリックしてアクション選択して、アクション
フレームを出します。

3.ここに次のプログラムを書きます。

// テキストフィールドの作成
this.createTextField("myTxt", 100, 0, 0, 100, 20);

// myWordの表示
if (_root.myWord == undefined) {
    myTxt.text = "myWord is not defined";
} else {
        myTxt.text = "myWord = ";
    myTxt.text += _root.myWord;
        myTxt.text += "\n";
}

// myNumberの表示
if (_root.myNumber == undefined) {
    myTxt.text = "myNumber is not defined";
} else {

        myTxt.text += "myNumber = ";
        myTxt.text += _root.myNumber;
        myTxt.text += "\n";
}

上の青いチェックボタンを押して、シンタックスエラーチェックします。

これでエラーがないか確認します。(図2)

2.jpg

後は先週と同じ手順でパブリッシュします。

先週も書きましたが、今週も書いておきます。

3.ファイル→パブリッシュの設定を選択し、パブリッシュの設定をします。

ここでは、Flash(swf)とHTMLにチェックを入れて、パブリッシュボタンを押しま
す。(図3)
3.jpg
パブリッシュボタンを押すと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(
        '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


4-2.paramタグを追加します。

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)

4.gif

前回と今回作ったFlashファイルは簡単すぎるくらい簡単ですが、PHPなどサー
バーサイドプログラムで取得したデータを利用してFlashの表示を変更したり、
JavaScriptなAPIを使って動的にデータを取得してFlashで表示する場合にも使わ
れます。

モバイル版のFlashはFlash Liteを使いますが、最新のFlash Lite 3も使ってい
るActionScriptは2.0のままです。

将来的にはActionScript3.0を使う機会が増えていくと思われますが、
ActionScript2.0を使う機会がまだまだ多いです。

ActionScriptについては2.0と3.0、両方覚えたほうがいいと思います。

今日はこれでおしまいです。







トラックバック(0)

トラックバックURL: http://blog.promob.jp/mt/mt-tb.cgi/234

コメントする