`

flash 中的 ApplicationDomain

阅读更多

使用 ApplicationDomain 类 <script src="/_sharedassets/pages.js"></script>

ApplicationDomain

 

ApplicationDomain 类的用途是存储 ActionScript 3.0 定义表。SWF 文件中的所有代码被定义为存在于ApplicationDomain 中。 可以使用应用程序域划分位于同一个安全域中的类。这允许同一个类存在多个定义,并且还允许子级重用父级定义。

 

在使用 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 文件的方法,则这种方式会很有用。

 

使用 ApplicationDomain 类 <script src="/_sharedassets/pages.js"></script>

使用应用程序域时,还要记住以下几点:

  • SWF 文件中的所有代码被定义为存在于应用程序域中。 主应用程序在"当前域"中运行。"系统域"中包含所有应用程序域(包括当前域),也就是,它包含所有 Flash Player 类。
  • 所有应用程序域(除系统域外)都有关联的父域。主应用程序的应用程序域的父域是系统域。已加载的类仅在其父级中没有相关定义时才进行定义。不能用较新的定义覆盖已加载类的定义

 

 

 

看一下下面这个例子:


使用 ApplicationDomain 类 <script src="/_sharedassets/pages.js"></script>

主应用程序文件为 application1.swf。它包含从其它 SWF 文件加载内容的 Loader 对象。在此方案下,当前域为 Application domain 1。用法 A、用法 B 和用法 C 说明了为应用程序中的每个 SWF 文件设置适当应用程序域的不同方法。

 

 

用法A:

用的不是很多,实际上是单独的创建一个新的域和当前应用程序域平级。作为系统域的真子集。

request.url = "application2.swf";
request.applicationDomain


 = new ApplicationDomain

();

 

 

用法B:

被用作Rsls(运行时共享库)的技术,就是在当前的ApplicationDomain添加新的类定义。

request.url = "module3.swf";
request.applicationDomain = ApplicationDomain.currentDomain;

 

 

用法C:

被用作Modual(模块)技术,就是在当前的ApplicationDomain的真子域,他的特点是可以动态的加载和移除。便于垃圾回收。

request.url = "module3.swf";
request.applicationDomain


 = new ApplicationDomain

(ApplicationDomain

.currentDomain);

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 76.8 KB
分享到:
评论

相关推荐

    ApplicationDomain的误解,安全沙箱有关内容

    在Adobe Flash AS3编程中,`ApplicationDomain`是一个重要的概念,它主要用于管理类的加载和访问控制,同时也为运行时安全机制提供了支持。在AS3中,每一个运行中的SWF文件都处于一个或多个`ApplicationDomain`之中...

    applicationDomain学习资料

    ApplicationDomain的概念在Flash和更广泛的编程领域中扮演着重要角色,尤其是在资源管理和跨文档资源共享方面。通过合理利用运行时共享库资源和创作时共享库资源,开发者可以构建更加高效、灵活且易于维护的应用程序...

    深入理解ApplicationDomain和SecurityDomain

    ### 深入理解ApplicationDomain和SecurityDomain #### 安全域(Security Domain)与应用程序域(Application Domain)概述 安全域与应用程序域是Flash Player中两种重要的沙箱概念,它们帮助开发者理解如何管理和...

    详细介绍ApplicationDomain和SecurityDomain

    在深入探讨ApplicationDomain和SecurityDomain之前,我们首先明确这两个概念的基本定义及其在Flash环境中的重要性。ApplicationDomain和SecurityDomain是Flash Player中用来管理和隔离不同内容的重要机制。它们分别...

    详解flash应用程序域

    通过使用`ApplicationDomain.currentDomain`或新建`ApplicationDomain`实例,开发者可以灵活地决定子SWF的定义应当放置在何处,从而实现对继承关系和资源访问的精细控制。 #### 结论 理解Flash应用程序域对于任何...

    Adobe Flash Player for IE v11.3.300.265

    Adobe Flash Player(Flash Player官方下载)是一个集成的多媒体播放器,让你在Web上享受更广泛的多媒体体验。Adobe Flash Player官方版可显示和播放多媒体内容,从数以千计的高度...— ApplicationDomain.getQualifie

    flash 远程加载资源文件及引用

    在多个SWF文件(如`login.swf`和`main.swf`)之间进行交互,可以利用`LoaderContext`和`ApplicationDomain`。通过设置`LoaderContext`的`applicationDomain`属性,可以控制加载的SWF是否能访问主SWF的类和变量: `...

    Flash Loading源程序

    如果需要指定类型,可以使用LoaderContext对象的checkPolicyFile和applicationDomain属性。 7. **内存管理**:加载的资源会占用内存,因此在不再需要时应卸载(unload)它们以释放内存。同时,注意避免内存泄漏,这...

    Flash As3.0 Web传递参数

    import flash.system.ApplicationDomain; import flash.display.MovieClip; var movieClip:MovieClip = this as MovieClip; var params:Object = movieClip.loaderInfo.parameters; trace("param1: " + params....

    JS与FLASH相互调用0积分0积分

    &lt;object type="application/x-shockwave-flash" data="example.swf" width="525" height="390" id="myFlash"&gt; &lt;param name="allowScriptAccess" value="sameDomain"/&gt; &lt;!-- 其他参数 --&gt; var response = ...

    flash透明背景说明

    &lt;embed src="myMovieName.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="myMovieName" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" ...

    ASP.NET网页中嵌入Flash动画的代码

    height="100" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"/&gt; ``` - `src`: 指定Flash文件的位置。 - `...

    flash swf之间传值

    2. **使用LoaderContext和ApplicationDomain**: 在加载时,你可以设置`LoaderContext`的`applicationDomain`属性,使得A.SWF和B.SWF共享同一命名空间,从而可以直接访问彼此的公开变量。但这可能导致命名冲突,所以...

    ASP.NET 加Flash

    在探讨“ASP.NET加Flash”的知识点时,我们主要聚焦于如何在ASP.NET应用程序中集成Flash技术,以增强网站的互动性和视觉效果。虽然Flash技术在近年来由于HTML5的兴起而逐渐减少使用,但在其鼎盛时期,它为网页设计...

    网页中怎样控制Flash的播放与停止.pdf

    &lt;embed src="demo.swf" menu="false" quality="high" bgcolor="#ffcc33" width="150" height="100" name="movie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" ...

    flash资源加载策略

    通过Loader.contentLoaderInfo.applicationDomain.getDefinition()或getDefinitionByName()方法,可以在运行时获取并实例化这些资源。这种方式加载速度快,管理方便,尤其适合UI皮肤和即时显示的图标。然而,它要求...

    AS3 多线程

    在AS3中实现多线程,可以使用`flash.system.LoaderContext`和`flash.system.ApplicationDomain`这两个类。`LoaderContext`允许创建一个独立的运行环境,而`ApplicationDomain`则用来管理类的加载和命名空间。通过这...

    asp flash 上传 代码 能显示上传进度

    &lt;embed src="upfile/main.swf" quality="high" bgcolor="#ffffff" width="342" height="38" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage=...

    Flash页游未来新技术:Adobe Alchemy

    例如,可以通过 `ApplicationDomain.currentDomain.domainMemory.readInt()` 直接读取内存中的数据。这种机制通过将 C/C++ 代码转换为 AS3 代码并在 Flash Player 10.x+ 中执行,实现了指令长度的显著缩短,进而提升...

    FLEX 系统管理器 SystemManager

    SystemManager不仅负责控制Flex应用的基本元素,如应用窗口、Application实例、弹出窗口和光标,还负责管理ApplicationDomain中的类加载和执行。下面将详细讨论SystemManager的主要功能和工作流程。 1. **应用窗口...

Global site tag (gtag.js) - Google Analytics