如何通过XMLUI从JSFL中获取Flash Authoring的值?

时间:2010-08-31 19:03:06

标签: flash actionscript-3 jsfl flash-ide

我想从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对话框时存在,并且只要用户单击 accept 取消,它们就会变为未定义,这是有道理的。 。 有人确认是这样的吗?

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

1 个答案:

答案 0 :(得分:1)

  

在某种程度上它是有道理的,如果   xmlui变量只要有效   显示xmlui对话框,以及它们   一旦用户变得不确定   单击“接受”或“取消”。能够   有人确认是这样的吗?

是的,我也这么认为。

  

Aworkaround将拯救   'secretword'在文本文件中通过   来自xmlui的JSFL,虽然只是路过   从xmlui节点到JSFL的值会   更简单。有一种“更清洁”的方式   这样做,除了写一个   文件到磁盘?

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