- 浏览: 14374 次
最新评论
ApplicationDomain
- 博客分类:
- 技术杂绘
ApplicationDomain
2010年08月01日
ApplicationDomain类 ApplicationDomain 类的用途是存储 ActionScript 3.0 定义表。SWF 文件中的所有代码被定义为存在于应用程序域中。 可以使用应用程序域划分位于同一个安全域中的类。这允许同一个类存在多个定义,并且还允许子级重用父级定义。
在使用 Loader 类 API 加载用 ActionScript 3.0 编写的外部 SWF 文件时,可以使用应用程序域。(请注意,在加载图像或用 ActionScript 1.0 或 ActionScript 2.0 编写的 SWF 文件时不能使用应用程序域。)包含在已加载类中的所有 ActionScript 3.0 定义都存储在应用程序域中。加载 SWF 文件时,通过将 LoaderContext 对象的 applicationDomain 参数设置为 ApplicationDomain.currentDomain,可以指定文件包含在 Loader 对象所在的相同应用程序域中。通过将加载的 SWF 文件放在同一个应用程序域中,可以直接访问它的类。如果加载的 SWF 文件包含嵌入的媒体(可通过其关联的类名称访问),或者您要访问加载的 SWF 文件的方法,则这种方式会很有用。如以下示例所示:
代码package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
public class ApplicationDomainExample extends Sprite {
private var ldr:Loader;
public function ApplicationDomainExample()
{
ldr = new Loader();
var req:URLRequest = new URLRequest("Greeter.swf");
var ldrContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
ldr.load(req, ldrContext);
}
private function completeHandler(event:Event):void
{
ApplicationDomain.currentDomain.getDefinition("Greeter");
var myGreeter:Greeter = Greeter(event.target.content);
var message:String = myGreeter.welcome("Tommy");
trace(message); // Hello, Tommy } }}
}
}
}
使用应用程序域时,还要记住以下几点:
SWF 文件中的所有代码被定义为存在于应用程序域中。 主应用程序在"当前域"中运行。"系统域"中包含所有应用程序域(包括当前域),也就是,它包含所有 Flash Player 类。 所有应用程序域(除系统域外)都有关联的父域。主应用程序的应用程序域的父域是系统域。已加载的类仅在其父级中没有相关定义时才进行定义。不能用较新的定义覆盖已加载类的定义。下图显示了某个应用程序在单个域 (domain1.com) 中加载多个 SWF 文件的内容。根据加载内容的不同,可以使用不同的应用程序域。紧跟的文本说明用于为应用程序中的每个 SWF 文件设置适当应用程序域的逻辑。
主应用程序文件为 application1.swf。它包含从其它 SWF 文件加载内容的 Loader 对象。在此方案下,当前域为 Application domain 1。用法 A、用法 B 和用法 C 说明了为应用程序中的每个 SWF 文件设置适当应用程序域的不同方法。
用法 A:通过创建系统域的子级划分子级 SWF 文件。在示意图中,Application domain 2 创建为系统域的子级。application2.swf 文件在 Application domain 2 中加载,因此其类定义从 application1.swf 中定义的类中划分出来。
此方法的一个用处是使旧版应用程序能够动态加载相同应用程序的更新版本,而不会发生冲突。之所以不发生冲突,是因为尽管使用的是同样的类名称,但它们划分到不同的应用程序域中。
以下代码将创建作为系统域子级的应用程序域:
request.url = "application2.swf";
request.applicationDomain = new ApplicationDomain();
用法 B:在当前类定义中添加新的类定义。module1.swf 的应用程序域设置为当前域 (Application domain 1)。这可让您将新的类定义添加到应用程序的当前一组类定义中。这可用于主应用程序的运行时共享库。加载的 SWF 被视为远程共享库 (RSL)。使用此方法可以在应用程序启动之前使用预加载器加载 RSL。
以下代码将某应用程序域设置为当前域:
request.url = "module1.swf";
request.applicationDomain = ApplicationDomain.currentDomain;
用法 C:通过创建当前域的新子域,使用父级的类定义。module3.swf 的应用程序域是当前域的子级,并且子级使用所有类的父级的版本。此方法的一个用处可能是作为一个使用主应用程序的类型的多屏幕丰富 Internet 应用程序 (RIA) 模块,该模块作为主应用程序的子级加载。如果能够确保所有类始终更新为向后兼容,并且正在加载的应用程序始终比其加载的软件的版本新,则子级将使用父级版本。如果可以确保不继续拥有对子级 SWF 的引用,则拥有了新的应用程序域还使您能够卸载所有的类定义以便于垃圾回收。
此方法使加载的模块可以共享加载者的 singleton 对象和静态类成员。
以下代码将创建当前域的新子域:
request.url = "module3.swf";
request.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
发表评论
-
javaIO浅析
2012-01-20 08:36 719javaIO浅析 2010年06月13日 什么是流: ... -
linux 进程通信――C语言实现
2012-01-20 08:36 838linux 进程通信――C语言实现 2010年10月15日 ... -
Dot NET:嵌入式开发平台(图)
2012-01-20 08:36 591Dot NET:嵌入式开发平台(图) 2010年08月11日 ... -
Mnesia 一个用于电信应用系统的健壮的分布式DBMS
2012-01-20 08:36 609Mnesia 一个用于电信应用系统的健壮的分布式DBMS ... -
uboot的配置问题对\include\configs\[boardname].h的修改
2012-01-20 08:35 1773uboot的配置问题对\include\configs\[bo ... -
flex3控件_ModuleLoader
2012-01-19 13:42 546flex3控件_ModuleLoader 2011年07月0 ... -
Flex-LoaderContext applicationDomain 属性详解
2012-01-19 13:42 938Flex-LoaderContext applicationD ... -
ApplicationDomain.currentDomain的细节
2012-01-19 13:42 645ApplicationDomain.currentDomain ... -
修复工具类
2012-01-19 13:41 657修复工具类 2011年05月08日 ... -
LINUX 常用基本指令
2012-01-17 03:31 613LINUX 常用基本指令 2011年08月05日 lin ... -
计算机基础应用》理论题1
2012-01-17 03:31 863计算机基础应用》理论 ... -
学习光盘刻录必备基础知识
2012-01-17 03:31 776学习光盘刻录必备基础 ... -
Ghost命令全解析 百度搜集
2012-01-17 03:31 636Ghost命令全解析 百度搜集 2010年06月21日 ... -
衣食住行皆史
2012-01-16 02:06 653衣食住行皆史 2010年04 ... -
人的衣食住行
2012-01-16 02:06 748人的衣食住行 2009年11月28日 衣食住行 【词目 ... -
走近古人的生活 衣食住行
2012-01-16 02:06 956走近古人的生活 衣食住行 2009年12月19日 教材分 ... -
中国古代衣食住行 9
2012-01-16 02:06 664中国古代衣食住行 9 2009年09月27日 陈设和起居 ... -
中国古代衣食住行 6
2012-01-16 02:06 511中国古代衣食住行 6 2009年09月27日 ...
相关推荐
applicationDomain学习资料
深入理解ApplicationDomain和SecurityDomain
ApplicationDomain的误解,安全沙箱有关内容
详细介绍ApplicationDomain和SecurityDomain的原理,想对这方面的知识做深入研究的可以看下
NULL 博文链接:https://luhantu.iteye.com/blog/1915935
and concepts for the application domain, criticality, and complexity of each system to be developed. Techniques for management of projects, configuration, variant and quality, as well as software ...
Developing NoC based interconnect tailored to a particular application domain, satisfying the application performance constraints with minimum power-area overhead is a major challenge. With technology...
implementation details or the application domain is given. The model is used to formalize the problem of optimal distribution of computational load to an arbitrary set of resources across a ...
app domain (application domain)应用域 application 应用、应用程序 application framework 应用程序框架 appearance 外观 append 附加 architecture 架构、体系结构 archive file 归档文件、存档文件 argument引数...
context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); context.applicationDomain = ApplicationDomain.currentDomain; context.applicationDomain = new ApplicationDomain(); ...
本工具能够属于reflector的升级版,可以嵌入牛X的插件做很多事情。
Within each chapter, the material is organized according to the application domain, starting with the simple algorithms and advancing to the more complicated. Emphasis is placed on the paradigms and ...
Adobe Flash Player(Flash Player官方下载)是一个集成的多媒体播放器,让你在Web上享受更广泛的多媒体体验。Adobe Flash Player官方版可显示和播放多媒体内容,从数以千计的高度...— ApplicationDomain.getQualifie
面向对象的系统分析和设计的主要目的是完成对某个特定应用论域(application domain)的分析和系统的建模。应完成的主要工作是描述系统中的对象、对象的属性和操作、对象的动态特性、对象间的构造关系和通信关系等,...
面向对象的系统分析和设计的主要目的是完成对某个特定应用论域(application domain)的分析和系统的建模。应完成的主要工作是描述系统中的对象、对象的属性和操作、对象的动态特性、对象间的构造关系和通信关系等,...