我想从 flash 文件设置一个变量,以便我可以在命令中从 JSFL 访问 if 。

我正在 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 对话框就存在,并且一旦用户单击其中一个,它们就会变为未定义 接受 或者 取消。有人可以确认是这样吗?

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

有帮助吗?

解决方案

在某种程度上,只要显示XMLUI对话框,就可以使用XMLUI变量,并且一旦用户单击接受或取消,它们就会变得不确定。有人可以确认是这种情况吗?

是的,我也这么认为。

Aworkaround将通过XMLUI的JSFL保存“秘诀”,尽管仅将值从XMLUI节点传递到JSFL会更简单。除了将文件写入磁盘外,还有其他“清洁”方法吗?

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top