我已经创建了一个非常大规模的Flash游戏,并且显然有一个巨大的疏忽 - 希望托管我的游戏的Flash门户网站需要单独使用它.swf。但是,问题是我在外部加载所有内容。我从.plist文件,.png中的图像和.wav中的声音加载级别数据,所有这些都位于.swf目录的文件夹中。它们是通过Loader和URLRequest加载的。
有什么方法可以嵌入这些,所以它会独立运行吗?优选地,比单独写入嵌入线更容易,因为有1000个文件。
非常感谢!
答案 0 :(得分:2)
简短回答:不。
答案很长:因为您使用Loaders和URLRequests,所以每个资产都需要作为外部请求进行访问。您需要一种简单的方法让它们指向SWF中的资产,这是不可能的。但是,如果您稍微更改了工作流程,您可能会发现一种在代码更改方面可以接受的方式,并且从长远来看将使您受益。
如果您使用Flash Builder,FDT,FlashDevelop或IntelliJ等编辑器,您应该探索SWC文件的许多用途。您可以在Flash IDE的发布设置中点击“导出为SWC”复选标记,每次测试(Cmd + Enter)fla文件时都会创建一个SWC。您可以在所选的编辑器中导入该SWC文件,并将原始fla文件的任何符号引用为AS3类。在编译时,Flash编译器将获取您的原始资产并将它们嵌入到生成的SWF中,然后您可以将其分发到您喜欢的任何门户网站。 PNG和WAV是最简单的。对于.plist,您必须使用[Embed(...)]
元标记。拥有一个SWF的好处还在于您不需要预加载每个单独的资产,并且所有资产创建都在一个线程中完成。没有更多的事件监听器意大利面加载资产!
确保为使用SWC正确命名符号和链接属性。您可以使用标准包格式轻松查找资源,例如命名符号fla.icons.GreyLogo
或fla.homepage.BackgroundGraphic
。如果您的方向正确import fla.icons.GreyLogo
,则可以通过调用
var logo:GreyLogo = new GreyLogo();
Here is an article that goes into this a little more thorougly.如果我正确理解您的设置,那将是一项很多工作,但在未来的项目中可能会有所帮助。
干杯,
EP。