繁体   English   中英

我可以在 a.swf 中保留 xml 数据吗?

[英]Can I retain xml data in a .swf?

我有一个 .swf 文件,它的所有资产都通过 xml 加载,以使文件模块化。 但是,当我尝试将 published.swf 文件移动到不同的目录时,我需要将 xml 文件和所有资产作为额外的行李带上。

有没有办法创建一个可以在发布期间加载这些资产并保留它们的 a.swf? 我目前正在尝试制作另一个.swf,将其加载到该文件中,并使用 Adobe Air 更新它以加载所有内容,但我认为这不是正确的方向。

我宁愿避免使用包装器,但如果没有其他选择,我会调查它。

您可以将 XML 嵌入到已编译的 SWF 中:

[Embed(source="data.xml", mimeType="text/xml")]
protected const XmlClass:Class;

var xml:XML = XML(new XmlClass());
trace(xml.toXMLString());

或者,您可以简单地将 XML 粘贴为 ActionScript class 的成员:

package
{

    public class XmlData
    {

        public static var xml:XML =
            <root>
                <child name="etc..." />
            </root>;
    }
}

希望有帮助。

查看“.sol”文件。 它们或多或少是 Flash 文件的可变数据库(一些 flash 游戏使用它们来存储您的信息以供将来访问)。 唯一的问题是,如果您将程序移动到另一台计算机,它也必须移动。 除此之外,我不知道其他方法,但也许其他人可能?

编辑:事后诸葛亮——也许研究使用远程 SQL 数据库来存储您的信息会对您有所帮助?

杰森是对的。 您还可以使用嵌入(包含在已编译的 .swf 文件中)您的 bitmap 资产

[Embed(source="asset.jpg")]
private var BitmapAssetClass:Class    

var myBitmapInstance1:Bitmap = new BitmapAssetClass();
var myBitmapInstance2:Bitmap = new BitmapAssetClass();

或 .swf 矢量资产使用:

[Embed(source="assetLibrary.swf", symbol="myFlashCS4SymbolName")]
private var VectorAssetClass:Class    

var myVectorInstance1:Sprite = new VectorAssetClass();
var myVectorInstance2:Sprite = new VectorAssetClass();

addChild(myVectorInstance1);
addChild(myVectorInstance2);

这将结束模块化,并且每次您想要添加单个资产更改时,您都必须再次编译整个应用程序。

hth

注意:编译 = 发布

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM