プロが教える店舗&オフィスのセキュリティ対策術

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内部で取得するような処理もできますか?

A 回答 (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/c … 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;
------------------------------
 
「suzukaでFlashVars 値を渡」の回答画像1
    • good
    • 0
この回答へのお礼

できました。とても感謝しております。

補足ですが、
1つずっと躓いていた点がありました。

アクションレイヤーを挿入しそのレイヤーのフレーム1に読み込んできても

フレームを5からスタートさせるようなレイヤーにはつながらないのですね。
アルファ値100でレイヤー1からスタートさせたらつながりました。

ありがとうございました。

お礼日時:2011/03/11 12:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!