??? 在MXML中导入(import)和包含(include)AS代码的使用方法

为提高MXML代码的可读性,你可以通过<mx:Script>标签引入as代码来替代插入大块的脚本。同时您还可以包含(include)或导入(import)AS代码。
??? 包含(include)和导入(import)AS代码存在本质的区别。包含(include)是将一个文件中的代码拷贝到另一个,就像将内容粘贴到include标签所在的位置一样;导入(import)则是对一个类文件或包的引用,从而是您可以访问外部类的对象和属性。导入的文件必须位于源路径(source path)上,而包含的文件则必须位于MXML文件的相对路径上,或者使用绝对路径。
??? 通过使用<mx:Script source=”filename”>标签将AS代码包含到Flex程序中。
??? 在<mx:Script>块中,使用导入(import)的代码定义Flex程序需要使用的AS类或包。

??? 包含(include)AS文件
??? 要包含AS代码,你需要在<mx:Script>标签中引入外部as文件。在编译的时候,编译器as文件的内容直接复制到MXML程序中,就类似直接写的代码。跟<mx:Script>块中的AS一样,包含进来的AS语句也只能写在函数内部,不过可以在包含进来的as文件中进行常量和命名空间的定义,但不能在包含的文件中定义类。在包含文件中定义的变量和函数可以被MXML文件中的任一组件引用。
包含的AS文件不一定要跟MXML文件放在同一个目录。但应该按逻辑结构合理的组织后包含的AS文件。
在Flex程序中有两中方法包含外部的AS文件:
??? 1. <mx:Script>标签的source属性,推荐使用此方法包含外部AS文件。
??? 2. 在<mx:Script>块中使用include语句。
??? 注意:include指令只能位于可编写多行语句的位置。例如,下列写法不合法:
??????? if (expr)??????????????????????????????????????????????????????????????????????????????????????????????????
?????????? include “foo.as”; // First statement is guarded by IF, but rest are not.
??????? …???????????????????????????????????????????????????????????????????????????????????????????????????????????

而正确写法如下:

??????? if (expr) {???????????????????????????????????????????????????????????????????????????????????????????????
?????????? include “foo.as”; // All statements inside { } are guarded by IF.??????????
??????? }????????????????????????????????????????????????????????????????????????????????????????????????????????????

??? 导入(import)AS类或包
??? 在<mx:Script>块中实现导入,举例如下:
??????? import MyPackage.Util.MyClass; //导入指定的类??????????????????????????????????
??????? import MyPackage.Util.*; //使用*号导入Util包下的所有类???????????????????????

??? 注意:如果程序没有用到导入的类,那么该类不会被包含到生成的SWF文件中。因此,如果你使用了*号导入完整的包并不会导致生成的SWF文件过大。