About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Jun

    27

    默认情况下,当编译一个 SWF 文件时,它会在第一帧中导出所有类,包括使用到的 所有直接类或间接类(如通过扩展或组件等)。这样当加载这个 SWF 文件时,只有在文档类所有被编译到 SWF 中的类全部加载后才会显示(在 init 事件发生之前)。为了避免这种类载入的延迟,需要使用 Flash 的延迟类的加载应用技术。即将除文档类和第 1 帧所必须的类之外的其它类延迟至 init 事件之后再加载,比如在第 2 帧或后续帧中加载。

    为了使用这种延迟加载的技术,我们需要用到以下几个步骤:

    ● 如在《Flash 库中的多个元件连接到单个超类》中所写的“作为一名高级的 AS 程序员来说,需要在基于 .fla 的发布设置中设置 AS3 的编译期行为,将“自动声明舞台实例”禁止(取消对勾)”。这是为了防止舞台上主时间轴中的命名实例相应的类在编译期自动添加到文档类中,这样就会被文档类间接的引用,并需要在init事件前就需要被加载。

    ● 将舞台上主时间轴上的所有手工创建的实例在对应的属性面板中需删除实例命名(如果主类中定义了相应的舞台上命名实例的变量,也同样需要删除——这是肯定的)。

    ● 在 FLA 文件发布设置的 AS3 设置选项中,修改“导出帧中的类”为大于 1 的帧或后续帧。

    使用延迟加载技术,可以在第一帧被加载后初始化界面,并使用一个优雅的加载进度条来显示当前文件的加载进度。