在整个SWF完全加载之前,已编译的SWF不显示预加载器。任何肝素都会非常感激,我整夜都搜不到任何东西,至少对我而言。嵌入字节数组的SWF预加载器
回答
不能嵌入ByteArray
到主文档类,因为这是从文档类引用的类将自动包含在框架1.
预加载资产最好的办法是有一个单独的Preloader类和主类。您希望您的预加载器类可以在第1帧上导出,并且您的主类和第2帧上的资产能够导出。
不幸的是,这比应该更复杂,但您可以这样做:将文档类设置为Preloader
。本课程包含您的loaderInfo
代码。但是,当您完成加载时,不直接实例化Main,直接,即不做var main:Main = new Main()
。无论您做什么,这都会自动将Main编译到第1帧。相反,实例化它间接地,像这样:
nextFrame(); // you sometimes need to do this for the player to register classes exported on frame 2
var mainClass:Class = flash.utils.getDefinitionByName("Main") as Class;
var main:Sprite = new mainClass();
addChild(main);
这将自动从主猛拉到第1帧
接下来,如果您使用Flash CS3 + IDE中,进入文件 - 停止编译器>发布设置 - > Flash-> ActionScript 3.0设置,然后将“将类上的帧导出”设置更改为帧2.然后,在影片的第2帧上放置一个空的MovieClip。在此MovieClip中,通过放置以下代码来为您的Main类添加引用:var dummy:Main;
。你必须这样做的原因是,编译器仍然知道你使用的是Main,所以它实际上将它编译到电影中,否则它根本不会编译它。您也不希望将其放在主时间轴上,因为主时间轴上的任何代码引用都会自动被抽出到第1帧。
在IDE中,一个有用的技巧可以检查事物已导出到适当位置将在“发布属性 - > Flash”中检查“生成大小报告”。您可以检查报告,并在垃圾已导出到第1帧时轻松通知。
如果您使用Flash Builder,FlashDevelop或FDT,则过程基本相同 - 创建单独的Preloader和Main类并实例化间接来自Preloader。但是,信号编译器编译主预载后的框架上,把这个元标记上方public class Main
在Main.as
:
[Frame(factoryClass="Preloader")]
的FlashDevelop还可以通过单击+在项目选项卡反思它旁边的SWF文件。它会显示哪些资产已输出到哪些框架。理想情况下,您只需要第1帧上的最小预加载器。
我已经在CS4中测试了Mike的方法。显然,引用Main的虚拟影片剪辑不需要位于第2帧或时间轴上的任何位置。只要虚拟影片剪辑设置为在第2帧上导出,Main将在第2帧上导出,因为它在虚拟剪辑的代码中被引用。
- 1. 嵌入SWF作为预加载器
- 2. 组预加载图像SWF
- 3. JS显示字节加载的SWF
- 4. 预加载JavaScript嵌入式播放器
- 5. 主SWF预加载器问题
- 6. 预加载YouTube嵌入
- 7. 预加载SWF和图像
- 8. 用jquery/JS预加载swf
- 9. swf加载类加载器参数
- 10. As3 swf字节码注入
- 11. 加载DLL中的字节数组
- 12. 预加一个字节到一个字节数组
- 13. 从字节数组预览PDF而不将字节写入本地机器
- 14. Codeigniter嵌入swf
- 15. Mongoid预先加载嵌入文档
- 16. 调用外部SWF。如何预加载?
- 17. 如何将外部.swf预加载器与实际的.swf结合起来?
- 18. 从Flash中的嵌入文件加载SWF
- 19. 点击重新加载/重置嵌入的SWF
- 20. JavaScript数组预加载
- 21. 用于外部swf文件的AS3预加载器
- 22. 预加载器代码中的SWF标记和舞台大小
- 23. 如何使预加载的swf填充浏览器?
- 24. swfobject 2.2 swf加载器
- 25. 数组键是一个嵌入零字节的字符串吗?
- 26. swf中加载的swf文件中的字体!文字消失
- 27. 加载和卸载组件AppDomain.Load(字节)
- 28. 预加载函数的数组值
- 29. 如何在运行时嵌入swf和加载?
- 30. 加载时嵌入式swf自动缩放
哇!很棒的技巧,但然后我得到这个错误消息 - ArgumentError:错误#2100:Loader.loadBytes()中的ByteArray参数必须具有大于0的长度。 – kornesh 2011-03-27 21:21:03
不确定在那个,你可以发布你用来创建ByteArray的? – 2011-03-27 21:45:36
我发布了整个预加载器和主类.. – kornesh 2011-03-27 21:53:39