• ベストアンサー

suzukaでFlashVars 値を渡す

flash作成ソフトsuzukaを使っています。 外部から値をもらってきて処理をすることは可能でしょうか。 ここをみると( http://suzupara.iinaa.net/kiso211.html ) txtファイルからは取得できるようですが、 そうではなく、 [object要素] <param name="FlashVars" value="myVar0=test0&myVar1=test1" /> [embed要素] FlashVars="myVar0=test0&myVar1=test1" としたものをswf内部で取得するような処理もできますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

FlashVars は Flash Player 6 以上でできるようになった機能ですから Suzuka の場合は SWF4以外(SWF6以上) の SWF を生成する設定にしていれば普通にできると思いますよ。 FlashVars で SWF 内に送りこまれる変数名とその値は SWF の フレーム1 開始前に _root(_level0) に送り込まれますからそれを取ってくれば良いだけです。 ロード待ちをする必要もないので ActionScript 的には LoadVars (外部テキスト読み込み) より はるかに簡単です。 ◎ ファイル構造例  任意のフォルダ    ├AAA.html    └AAA.swf (例:横400px 縦300px)     ◎ AAA.swf のスクリプト例 メインタイムラインにアクションレイヤーを挿入して そのレイヤーのフレーム1に次のように書き【図↓】、 SWFの生成をします。 ------------------------------ //「txt0」と「txt1」というインスタンス名の //テキストフィールドを適当に作成 this.createTextField("txt0",0,10,10,100,20); txt0.border = true; this.createTextField("txt1",1,10,40,100,20); txt1.border = true; //「txt0」 に _root の変数 myVar0 の値を表示 txt0.text = _root.myVar0; //「txt1」 に _root の変数 myVar1 の値を表示 txt1.text = _root.myVar1; ------------------------------     ◎ AAA.html のコード全文例 ------------------------------ <html xml:lang="ja" lang="ja"> <head> <title>AAA</title> </head> <body> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="400" height="300" id="AAA"> <param name="movie" value="AAA.swf" /> <param name="FlashVars" value="myVar0=test0&myVar1=test1" /> <embed src="AAA.swf" FlashVars="myVar0=test0&myVar1=test1" width="400" height="300" name="AAA" type="application/x-shockwave-flash" /> </object> </body> </html> ------------------------------ これで AAA.html をブラウザで開けば検証できると思います。     テキストフィールド「txt0」と「txt1」は 値を人間が目で見るためだけに作ったもので、基本的には本題の FlashVars とは全く関係しません。 結局 _root.myVar0 と _root.myVar1 の値を取ってきて何かに使えば良いというだけです。 あと、_root は "あえて明示" しているだけです。 上記の場合は _root に書くスクリプト例ですから 別に _root など無くても良いです↓。 ---変更例--------------------- //「txt0」 に変数 myVar0 の値を表示 txt0.text = myVar0; //「txt1」 に変数 myVar1 の値を表示 txt1.text = myVar1; ------------------------------  

raryrary
質問者

お礼

できました。とても感謝しております。 補足ですが、 1つずっと躓いていた点がありました。 アクションレイヤーを挿入しそのレイヤーのフレーム1に読み込んできても フレームを5からスタートさせるようなレイヤーにはつながらないのですね。 アルファ値100でレイヤー1からスタートさせたらつながりました。 ありがとうございました。

関連するQ&A