2

我想从 Flash 文件中设置一个变量,以便我可以从命令中的 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') 时,我得到了未定义。

从某种意义上说,如果 xmlui 变量在显示 xmlui 对话框时一直存在,并且一旦用户单击接受取消,它们就会变得未定义。有人可以确认是这种情况吗?

解决方法是通过 xmlui 中的 JSFL 将“secretword”保存在文本文件中,尽管只是将值从 xmlui 节点传递到 JSFL 会更简单。除了将文件写入磁盘之外,是否有一种“更清洁”的方法?

4

1 回答 1

1

从某种意义上说,如果 xmlui 变量在显示 xmlui 对话框时一直存在,并且一旦用户单击接受或取消,它们就会变得未定义。有人可以确认是这种情况吗?

是的,我也这么认为。

解决方法是通过 xmlui 中的 JSFL 将“secretword”保存在文本文件中,尽管只是将值从 xmlui 节点传递到 JSFL 会更简单。除了将文件写入磁盘之外,是否有一种“更清洁”的方法?

为什么不将此密码应用于 XMLUI 的根元素?

于 2010-08-31T22:15:27.607 回答