[英]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.