我有一个.swf文件,它的所有资源都是通过xml加载的,以使文件模块化。但是,当我尝试将已发布的.swf文件移动到另一个目录时,我需要将xml文件和所有资产作为额外的行李。
有没有办法创建一个可以在发布期间加载这些资产的.swf并保留它们?我正在尝试制作另一个.swf,将其加载到那个,然后使用Adobe Air更新所有内容,但我不认为这是正确的方向。
我宁愿避免使用包装器,但如果没有其他选项,我会调查它。
答案 0 :(得分:1)
您可以将XML嵌入到已编译的SWF中:
[Embed(source="data.xml", mimeType="text/xml")] protected const XmlClass:Class; var xml:XML = XML(new XmlClass()); trace(xml.toXMLString());
或者,您只需将XML粘贴为ActionScript类的成员:
package { public class XmlData { public static var xml:XML = <root> <child name="etc..." /> </root>; } }
希望有所帮助。
答案 1 :(得分:0)
查看“.sol”文件。它们或多或少是Flash文件的可变数据库(一些Flash游戏使用它们存储您的信息以供将来访问)。唯一的问题是,如果您将程序移动到另一台计算机,它也必须移动。除此之外,我不知道其他方式,但也许其他人可能会这样做?
编辑:经过深思熟虑 - 或许您可以考虑使用远程SQL数据库来存储您的信息吗?
答案 2 :(得分:0)
[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
N.B。:compile = publish