如何通过 XMLUI 从 JSFL 中的 Flash 创作中获取值?
Posted
技术标签:
【中文标题】如何通过 XMLUI 从 JSFL 中的 Flash 创作中获取值?【英文标题】:How can I get values from Flash Authoring in JSFL via XMLUI? 【发布时间】:2011-04-06 10:51:17 【问题描述】:我想从 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" 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 对话框时一直存在,并且一旦用户单击 accept 或 cancel,它们就会变得未定义。 有人可以确认是这种情况吗?
解决方法是通过 xmlui 中的 JSFL 将“secretword”保存在文本文件中,尽管只是将值从 xmlui 节点传递到 JSFL 会更简单。 除了将文件写入磁盘之外,是否有一种“更清洁”的方法?
【问题讨论】:
【参考方案1】:在某种程度上它是有道理的,如果 xmlui 变量的存在时间为 显示 xmlui 对话框,它们 一旦用户变得未定义 单击接受或取消。能 有人确认是这种情况吗?
是的,我也这么认为。
解决方法是保存 文本文件中的“secretword”通过 来自xmlui的JSFL,虽然只是通过 从 xmlui 节点到 JSFL 的值将 更简单。有没有“更清洁”的方式 这样做,除了写一个 文件到磁盘?
为什么不将此密码应用于 XMLUI 的根元素?
【讨论】:
我不确定您所说的“为什么不将此密码应用于 XMLUI 的根元素?”是什么意思。您的意思不是手动将以上是关于如何通过 XMLUI 从 JSFL 中的 Flash 创作中获取值?的主要内容,如果未能解决你的问题,请参考以下文章