多SWF程序类静态空间共享

 采用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程序的接口、变量、和类及对象。

  源码:shareTest.zip

查看实例


 

 

下面文章或许你还感兴趣

  • Flex 2 Metadata Tag 应用 – 在 swf 文件內包入額外的 Class
  • Flex-动态加载SWF文件并获取对象类
  • FWD: Creating an Executable Apache Pivot App using Maven
  • 关于verydoc doc2any工具的参数
  • Tribon M3安装系列之多人共享license
  • 如何获取Flex对象实例的Class
  • FDT3.5正式版已经发布
  • Robotlegs IOC 接口实例化
  • xViewer for flex
  • 收藏-Flex Builder 3 on Eclipse 3.5

多SWF程序类静态空间共享》上有 1 条评论

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

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>