2012-07-06 40 views
1

我有一个.fla被打开,几个动作变量(url,标题等)被更改并发布。这发生了很多,而且它们是相同的变量。我只是将.swf文件保存为一个XML文件,但它会上传到第三方平台,因此所有信息都需要包含在.swf文件中。没有办法将可变信息添加到第三方站点。在发布期间包含XML(或JSON)数据 - Flash

我想知道是否有办法在发布时(如脚本)从xml文件或某些内容中获取新的变量信息,而无需打开Flash IDE。能够一次做出一大堆这些也很棒。

任何帮助/链接/线索将不胜感激。谷歌没有帮助我。这甚至有可能吗?

+2

你的信息看起来有点矛盾:“在发布的时候(如脚本?)而不必打开Flash IDE”。如果您可以加载外部数据,请使用FlashVars存储要加载的数据的网址。如果您需要将swf中嵌入xml,但xml更改,则可以为Flash IDE编写jsfl脚本,但必须打开IDE才能运行它。 – 2012-07-07 00:49:21

回答

1

无需打开Flash IDE中需要使用ANT或简单地与mxmlc编译器加载外部资源或构建脚本,东西的效果:

mxmlc -o output.swf -source-path="src/" -library-path+=library.swc. 

当您指出将XML嵌入到编译时,您可以使用[Embed]元数据标记嵌入XML或将XML粘贴到类中。

嵌入XML

package 
{ 
    public class XmlData 
    { 
     [Embed(source = "data.xml", mimeType = "application/octet-stream")] 
     public static const Xml:Class; 
    } 
} 

要使用XML,实例化xml为:

var xml:XML = new XML(new XmlData.Xml); 

XML变量

否则,你可以简单地粘贴到您的XML类如下:

package 
{ 
    public class XmlData 
    { 
     public static const xml:XML = 
      <root> 
       <element /> 
       <element attribute="value">data</element> 
      </root>; 
    } 
} 

尽管您必须编译SWF,但这种方法很简单,因为您可以简单地将XML文档粘贴到类中。

这将与e4x一样作为正常参考,并且不需要异步加载。

var data:String = [email protected];