在发布时间 - Flash中包含XML(或JSON)数据

时间:2012-07-06 20:54:24

标签: actionscript-3 flash flash-cs5 flash-ide

我有一个开放的.fla,一些动作变量(网址,标题等)被更改并发布。这种情况发生了很多,而且变量也是一样的。我只是将.swf文件保存为XML文件,但它被上传到第三方平台,因此所有信息都需要包含在.swf文件中。无法将变量信息添加到第三方站点。

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

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

1 个答案:

答案 0 :(得分: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 = XmlData.xml.element.@attribute;