采用flexBuilder 3.0开发测试,目的是了解加载后的程序之间的类实例空间共享。
一个主程序为MainApp.swf,一个子程序 sub.swf。
主程序执行初始后,自动加载子程序。
任务:
1)由主程序执行创建并调用子程序的HelloWorld类方法sayHello,带入姓名,返回“Hello ”+姓名。
2)由主程序执行创建并调用子程序的CustomComponent类,该类从Canvas继承,加载到主程序中的TabNavigator控件中。
3)由主程序给单一模式对象CommonInformation动态创建属性为“mainName”,子程序CustomComponent类中有Button按钮来激活事件,显示单一模式对象CommonInformation属性“mainName”的值。
测试结果:
1、在主程序Loader加载时,要将URLRequest对象的content属性置空,再进行加载Sub.swf文件,不然采用loader.contentLoaderInfo.ApplicationDomain.getDefinition无法获取相应的类类型。
CommonInformation.Instance["mainName"] = this.name;
lc.applicationDomain = appDomain;
u.contentType = ""; // <– 注意
2、测试出,子程序和主程序中有相同命名空间的类,其静态空间是共享的,由此我们可以直接采用单一模式来传递两个在同一根ApplicationDomain中SWF程序的接口、变量、和类及对象。

这种思想,在IFlexModule接口中就已经体现很多,今天尝试一下单一模式的情况。