2

Flash の初心者として、これは非常にわかりにくく、数時間かかりました。誰かが同じ問題を抱えている場合に備えて、ここで自分の質問に答えます。

技術的には、次のようなことができるはずです。

<param name="movie" value="movie.swf?param=value" />
<embed src="movie.swf?param=value" ...

またはこれ:

<PARAM NAME "FlashVars" VALUE="param=value">
<EMBED .... FlashVars="param=value">

どちらも、_root または _level0 スコープに「param」という正しい値を持つ変数を作成する必要があります。

これらはここに文書化されています

ただし、Flash の特定のバージョン (CS4、ActionScript 2.0) では、これは機能しませんでした。

4

2 に答える 2

1

また、 ExternalInterfaceを使用して、値を返すHTMLページでJavaScript関数を呼び出すこともできます。これには、値をハードコーディングする必要がなく、JavaScript関数にパラメーターを渡すことができるという付加価値があります。

フラッシュムービーの場合:

import flash.external.ExternalInterface;

function getOutsideValue(argToJS:String):Void {
 var jsArgument:String = argToJS;
 var result:Object = ExternalInterface.call("stringAdd", jsArgument);
}

HTMLページのJavascriptの場合:

function stringAdd(inptStr){
 var strToAdd = inptStr;
 strToAdd += " added text";
 return strToAdd;
}

したがって、FlashでActionScript関数を呼び出すと、次のようになります。

getOutsideValue("I get");

戻ります:

I get added text

ExternalInterfaceを使用して、JavaScriptからFlash内の関数を呼び出すこともできることに注意してください。両方の例はここで見つけることができます:http://kb2.adobe.com/cps/156/tn_15683.html

これは、SWFムービーとの間で情報をやり取りするための推奨される方法のようです。ハードコードされた値を使用するよりも、確かに動的で強力です。

于 2009-08-12T12:05:21.930 に答える
0

私にとってうまくいった答えは、CS4 によって生成された HTML の AC_FL_RunContent() 関数を変更して、ムービーに渡す必要があるパラメーターを追加することです。

'flashvars', 'param=value',

この関数は、OBJECT および EMBED タグまたはクエリ文字列で直接指定されたものをすべて上書きするようです。

そこにもっと良い解決策があるかもしれません...

于 2009-08-12T11:06:56.947 に答える