如何通过 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 对话框时一直存在,并且一旦用户单击 acceptcancel,它们就会变得未定义。 有人可以确认是这种情况吗?

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

【问题讨论】:

【参考方案1】:

在某种程度上它是有道理的,如果 xmlui 变量的存在时间为 显示 xmlui 对话框,它们 一旦用户变得未定义 单击接受或取消。能 有人确认是这种情况吗?

是的,我也这么认为。

解决方法是保存 文本文件中的“secretword”通过 来自xmlui的JSFL,虽然只是通过 从 xmlui 节点到 JSFL 的值将 更简单。有没有“更清洁”的方式 这样做,除了写一个 文件到磁盘?

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

【讨论】:

我不确定您所说的“为什么不将此密码应用于 XMLUI 的根元素?”是什么意思。您的意思不是手动将 节点添加到 XMLUI 文档,对吧?顺便说一句,secretword 只是一个占位符,它也用于“扩展 Flash MX 2004”,其想法是 swf 生成我需要进入 jsfl 的值。越简单越好 我可以知道你的主要目标吗? 当然。我使用 swf 作为 XUL 元素。 gui 提供了很多控件来修改文本(字体、大小、颜色、可选等)。当使用完成设置选项时,我需要将这些设置从 swf 传递给 jsfl(在 xul 对话框被接受之后)。这有意义吗?

以上是关于如何通过 XMLUI 从 JSFL 中的 Flash 创作中获取值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JSFL 中获得符号的描边边界?

如何将对象从 windowSWF 传递到 JSFL?

如何在不运行的情况下打开 JSFL 文件?

如何通过jsfl更改Flash中库中Item的“组件定义”?

停止程序直到 JSFL 文件完成

如何在 JSFL 文件中包含一些 js 文件?