About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Dec

    7

    Flash 平台的网页游戏开发时,由于框架类往往成百上千。为防止重复的类被编译到不同的模块,导致总文件容量会不断的变大,所以需要通过一定的技巧避免这种重复的类被编译到不同的SWF文件模块中去。这里有两种技巧:一种是取消编译时类型检查,另一种是使用外部库路径。

    不推荐的方法:取消编译时类型检查。可以通过设置编译器选项来实现,也可以通过将对象转换成 Object 对象成为动态类,或将加载对象赋于任意对象(*类型对象),但这种方法往往仅适用于单独开发者或非常小型的项目中使用,并不适合在团队性的多人合作开发过程中或网页游戏这种大型项目的开发过程中使用——因为这会让开发者失去编译期类型检查的功能,导致开发效率和发现错误的机率会大大降低。

    推荐的方法:使用外部库路径。这种方法可以实现在编译期对运行时加载资源的类型检查,只需将被加载的项目资源文件在发布 swf 同时,发布 swc 库文件版。此时这个 swc 库文件即可被用作编译期类型检查的外部库文件。以下是对这种推荐方法和该 swc 库文件的使用方法说明:

    在 Flex IDE 环境的项目中设置较为简单,只需在添加 swc 库文件时链接类型设置为外部即可(一般不需要作其它设置,swc 文件在编译器中使用时的优先级会高于源文件);

    然而在 Flash IDE 环境中则需要更多的经验和技巧,不同的版本它都会不同的结果。如在 CS3 版本中(MM公司的版本),IDE 中只有添加类路径设置的功能,并没有库文件添加的功能,这里只需将 swc 文件存放于需要编译期类型检查的 fla 文件相同目录即可。swc 文件在编译时它的优先级会高于源文件,但需要注意的是这句话它是带有条件的,即仅限 swc 文件的主类。如果属性为自定义类型对象,那么这些自定义类型的对象的源文件的优先级别将高于库文件;如在 CS6 这些最新版本中(Adobe公司的版本),IDE 中分别有添加类路径和库路径的功能,此时如果类与外部库同时可以访时,无论是否主类,编译器对类文件的优先级别将高于库文件。为了在 Flash IDE 环境中避免这种不同版本对类和库的优先级引起的问题,最好办法——即在需要这种编译期对运行时资源文件实行类型检查的项目,fla 文件的 IDE 设置选项中不包含任何被加载资源的源文件路径。

    :该技巧资料来自原 Macromedia 公司Flash 软件开发作者之一 Colin Moock 所著的AS权威书籍《Essential ActionScript 3.0》。