吾知网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6019|回复: 0
打印 上一主题 下一主题

as3.0的ApplicationDomain应用域

[复制链接]
跳转到指定楼层
楼主
发表于 2017-4-7 19:53:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在loadSWF的时候

  • var loader:Loader = new Loader();
  • loader.load(new URLRequest("child.swf"),2223);

load方法,有两个参数,第一个是要加载对象的url;第二个就是将些swf里面的类定义放在哪个ApplicationDomain(应用程序域)里面

下面就来说说这个应用程序域

主要来说有三种方式(还有一种不常见)

(一)

将被加载的类定义放在父应用程序域的子域(父域里面的子域,默认加载方式)

  • var currentApplication:ApplicationDomain =ApplicationDomain .currentDomain;
  • var loaderContext:LoaderContext = new LoaderContext();
  • loaderContext.applicationDomain = new ApplicationDomain (currentApplication);
  • loader.load(new URLRequest("child.swf"),loaderContext);

(二)

将被加载的类定义放在父应用程序域的里面,也就是两个合并(在一起了不过命名会有冲突)

  • var currentApplication:ApplicationDomain =ApplicationDomain .currentDomain;
  • var loaderContext:LoaderContext = new LoaderContext();
  • loaderContext.applicationDomain = currentApplication
  • loader.load(new URLRequest("child.swf"),loaderContext);

(三)

将被加载的类定义放在作为父域的系统域下的新建子域(也是和父域同级别)

  • var loaderContext:LoaderContext = new LoaderContext();
  • loaderContext.applicationDomain = new ApplicationDomain ();
  • loader.load(new URLRequest("child.swf"),loaderContext);

这些有什么用呢,下面是重点拉

当子swf被加载到父类使用的方法不同,我们访问子类的类定义的方式也不同

目前本人也只知道第一种,第三种和第二种的区别

第一种和第三种 获取类定义是loader.contentLoaderInfo.applicationDomian.getDefinition("类名");这个需要知道loader

第二种,直接可以ApplicationDomain.getDefinition("类名");这个不需要知道loader多方面


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|吾知网 ( 粤ICP备13013563号-1 )

GMT+8, 2024-4-20 09:52 , Processed in 1.078125 second(s), 8 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表