コマンドで JSFL からアクセスできるように、フラッシュ ファイルから変数を設定したいと考えています。
私は JSFL の XMLUI の要素を使用しています: これが JSFL です:
fl.getDocumentDOM().xmlPanel(fl.configURI + 'Commands/ATest.xml');
fl.trace(fl.xmlui.get('secretword'));//this traces undefined
XMLUI:
<dialog buttons="accept,cancel">
<textbox id="display_tb" size="24" />
<flash id="trace_fl" width ="150" height="100" src="ATest.swf">
<property id="secretword" />
</flash>
<button id="trace_btn" label="trace Flash" oncommand="fl.xmlui.set('display_tb','the secret word is ' + fl.xmlui.get('secretword'));" />
</dialog>
ATest.swf 内のアクション スクリプト:
MMExecute("fl.trace('Hello From Flash XMLUI');");
XMLUI.setProperty('secretword','duck');
私が使用する場合は注意してください
MMExecute("fl.xml.ui.set('secretword','duck')");
それ以外の
XMLUI.setProperty('secretword','duck');
エラーが発生します。
シークレットワードは XMLUI で適切に設定されています。
- fl.xmlui.get('secretword') を使用して、「display_tb」テキストボックスに値を設定できます
- actionscript から値を出力できます (fl.trace() を使用)
しかし、パネルを開いた後に JSFL で trace fl.xmlui.get('secretword') を使用すると undefined になります。
ある意味では、xmlui ダイアログが表示されている限り xmlui 変数が存続し、ユーザーがacceptまたはcancelのいずれかをクリックするとすぐに未定義になる場合は、意味があります。誰かがこれが事実であることを確認できますか?
回避策として、xmlui から JSFL を介して「秘密の言葉」をテキスト ファイルに保存しますが、xmlui ノードから JSFL に値を渡すだけの方が簡単です。ファイルをディスクに書き込む以外に、これを行う「よりクリーンな」方法はありますか?