如何通过 XMLUI 从 JSFL 中的 Flash 创作获取值?
-
26-09-2019 - |
题
我想从 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 的根元素?
不隶属于 StackOverflow