如何仅使用AS3制作Flash预加载器?

3
我想在我的应用程序中加入一个Flash预加载器,但我只使用Flex SDK/AS3/Notepad编写代码。我没有访问Flash IDE的权限。
有很多在线教程和帮助文件可以在CS4中完成此操作,但不涉及代码本身。有人能给我指点一下吗?
大多数示例似乎都围绕着在您的应用程序之前将加载器符号放置到第一帧中 - 但是我无法从Flex中访问时间轴或帧(或者至少我认为我不能!)。

这个论坛教程怎么样?https://defiantmouse.com/yetanotherforum.net/Default.aspx?g=posts&t=82 - dirkgently
查看该帖子需要注册 :/ - Andy Moore
转到此页面http://www.pathf.com/blogs/2008/08/custom-flex-3-lightweight-preloader-with-source-code/,然后单击Andrew的超链接 :P - dirkgently
2个回答

7

您需要了解一些AS3编译器指令,其中与此相关的是工厂类。

基本上,您需要创建一个类来加载扩展MovieClip的主类。 '预加载' 类可以监视 bytesloaded/bytestotal ,然后实例化您的主类。这对我来说不直观的部分是包括指令: [Frame(factoryClass="pathToYourLoaderClass")]

在您要预加载的主类顶部。

以下是一个提供更多信息和良好解决方案的优秀博客。

http://www.bit-101.com/blog/?p=946


看起来这个解决方案可能有点太复杂了,而且我找到的资源中没有一个能够处理Flex SDK 3 - 大多数都是处理Flex 2(包括这个bit-101链接),甚至更多的是AS2而不是AS3。不过还是谢谢! - Andy Moore
FYI,自Flex2以来,此功能未更改。要使用Flash IDE创建的预加载程序:
  1. 在Flash中将预加载程序资源创建为MovieClip,并将其导出为SWC。
  2. 将swc包含在flex项目的库路径中http://tiny.cc/L941T。
  3. 在工厂类的EnterFrame事件中,您可以使用工厂类的BytesLoaded / BytesTotal实例化并递增swc预加载程序的帧。
这很繁琐,但易于抽象为可重用的类。
- xivusr

2
对于 Flex 应用程序,您需要设置应用程序的 preloader 属性。这通常是乏味的灰色进度条,但也可以是任何显示对象。但要记住,为了实际显示 preloader,它必须被加载,因此需要保持较小的体积。因此,不建议使用 Flex 框架中的任何类,因为必须先下载框架才能显示 preloader。
如果您正在进行纯 AS3 项目而没有使用 Flex,则需要查看 Frame metadata 标记。有关更多信息,请参见此处:

http://www.bit-101.com/blog/?p=946 http://blogs.adobe.com/rgonzalez/2006/06/modular_applications_part_2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接