`
bufanliu
  • 浏览: 200578 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

通过ApplicationDomain类获得被加载应用程序域

    博客分类:
  • FLEX
阅读更多
首先先回顾一下FLASH的OO构成。
对于FLASH,我们可以把任何的可视化元件都看成某个类文件的具体实例,包括swf文件。
我们可以把swf文件看成一个类的具体实例,而它里面拥有个个其他类的实例对象,例如:
我们新建一个loaded.fla文件,然后我们建立一个影片剪辑元件,你可以在它的内部做一些动画处理,打开库,单击元件右建,选择“链接”打开“链接属性”,在类的输入框里我们键入“myClass”。

这样一来我们就可以把这个元件作为一个类--myClass。也就是说我们可以通过new来构建这个元件的具体实例并显示在舞台,如:


var test:myClass=new myClass();
addChild(test);

然而ApplicationDomain类能够获得swf文件的应用程序域,通过getDefinition方法可以从指定的应用程序域获取一个公共定义。 该定义可以是一个类、一个命名空间或一个函数的定义。

下面举个例子,我们新建一个.fla文件,名为doc.fla,现在我们要在doc.fla文件里加载上面发布的loaded.swf文件,然后通过ApplicationDomain来获得loaded.swf文件中myClass文件的定义,并在doc.fla中new两个具体实例。doc.fla的文档类“SunNeon”:


package {
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.display.MovieClip;
import flash.events.Event;
//导入ApplicationDomain类
import flash.system.ApplicationDomain;

public class SunNeon extends Sprite
{
private var swfPath:String="loaded.swf";
private var loader:Loader;
private var ur:URLRequest;
public function SunNeon()
{
loader=new Loader();
ur=new URLRequest(swfPath);
//添加加载完成事件,事件处理函数onCl
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onCl);
loader.load(ur);
}
//加载完成事件的处理函数,处理被加载swf文件里的应用程序域
private function onCl(event:Event):void{
//LoaderInfo对象承载载入swf文件的信息
var swfTarget:LoaderInfo=event.target as LoaderInfo;
//swfTarget的只读属性applicationDomain返回一个ApplicationDomain
//创建被加载swf的应用程序域
var appDomain:ApplicationDomain=swfTarget.applicationDomain as ApplicationDomain;
//getDefinition方法从指定的应用程序域获取一个公共定义。
//该定义可以是一个类、一个命名空间或一个函数的定义。
//其中"myClass"为被加载swf文件里影片剪辑链接属性里的类
var MCClass:Class=appDomain.getDefinition("myClass") as Class;
//创建MCClass实例,并返回影片剪辑对象
var myMCA:MovieClip=(new MCClass()) as MovieClip;
var myMCB:MovieClip=(new MCClass()) as MovieClip;
//为新创建的对象制定属性
myMCA.x=10;
myMCA.y=100;
myMCA.alpha=0.5;

myMCB.x=0;
myMCB.y=200;
myMCB.width=70;
//使对象显示在容器SunNeon中
addChild(myMCA);
addChild(myMCB);
}
}
}

Flash/Flex sunneon's blog
分享到:
评论

相关推荐

    详解flash应用程序域

    `LoaderContext`对象的`applicationDomain`属性允许开发者控制子SWF加载时应用程序域的放置方式。通过使用`ApplicationDomain.currentDomain`或新建`ApplicationDomain`实例,开发者可以灵活地决定子SWF的定义应当...

    深入理解ApplicationDomain和SecurityDomain

    在Flash Player中,可以通过创建新的应用程序域对象来实现应用程序域。这允许开发人员加载和运行来自不同来源的应用程序,同时保持各自独立的命名空间。 #### 三、示例代码分析 下面是一个示例代码片段,展示了...

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

    ### ApplicationDomain的理解与安全沙箱相关知识 ...通过上述介绍,我们可以看到`ApplicationDomain`在AS3编程中的重要性,它不仅有助于构建更加安全的应用程序,还为开发复杂的RIA应用提供了强大的支持。

    详细介绍ApplicationDomain和SecurityDomain

    当加载一个新类时,Flash Player会先检查当前的应用程序域是否有这个类,如果没有,则会向上级应用程序域查找。 **3. 示例** ```as3 var parentAppDomain:ApplicationDomain = ApplicationDomain.currentDomain; ...

    Flex ApplicationDomain

    ApplicationDomain,可以翻译为“应用程序域”,是ActionScript 3中的一个核心组件,用于管理和隔离不同的代码资源,确保它们在运行时能够独立运作而不会相互干扰。 首先,我们要明白,ActionScript 3中的每个运行...

    weblogic类加载过程简述

    WebLogic服务器是一款由甲骨文公司提供...通过理解WebLogic的类加载机制,开发者可以更好地管理应用程序的依赖关系,避免类冲突,并优化性能。此外,掌握类加载过程对于处理热部署、类冲突和资源管理等问题也至关重要。

    applicationDomain学习资料

    通过合理利用运行时共享库资源和创作时共享库资源,开发者可以构建更加高效、灵活且易于维护的应用程序和游戏。掌握这一技术不仅可以提高开发效率,还能优化用户体验,特别是在资源密集型的多媒体项目中。因此,深入...

    NET remoting 技术 -1

    - **应用程序域的操作**:通过`System.AppDomain`类可以进行应用程序域的创建、加载程序集、创建对象等操作。 - 获取当前运行的代码所在的应用程序域:`AppDomain currentDomain = AppDomain.CurrentDomain;` - ...

    Flash Loading源程序

    在IT行业中,Flash Loading源程序是指使用ActionScript编程语言编写的用于加载内容(如图片、视频、音频或其它Flash组件)到Flash应用程序中的代码。ActionScript是Adobe Flash平台的核心脚本语言,它允许开发者创建...

    weblogic9.2应用程序部署

    WebLogic Server 9.2 是 Oracle 公司提供的一个企业级 Java 应用服务器,它提供了用于开发、部署和管理Java EE(Java Platform, Enterprise Edition)应用程序的平台。本篇文章将详细阐述在WebLogic 9.2上进行应用...

    java基于UNIX域套接字(unix domain socket)连接redis

    在实际项目中,为了提高代码可读性和可维护性,我们通常会将配置信息如UNIX域套接字路径抽象成配置文件或者环境变量,然后在程序中动态加载。例如,使用Spring Boot集成Lettuce时,可以在`application.yml`中配置...

    flash资源加载策略

    Flash资源加载策略是优化Flash应用程序性能的关键因素,主要涉及到如何有效地加载和管理各种类型的资源,如图像、文本、音频和SWF文件等。在Flash中,有两个主要的加载类:URLLoader和Loader。 URLLoader主要用于...

    简单了解WebLogic Cluster的配置与应用程序

    - **集群同步**:部署的应用程序会被自动分发到集群中的各个成员,确保所有成员具有相同的配置和状态,从而实现高可用性和负载均衡。 #### 四、总结 通过深入了解WebLogic Server集群的配置与应用程序发布机制,...

    ActionScript3.0类大全(Word格式)

    17. **ApplicationDomain 类**:ApplicationDomain 类用于管理类的命名空间,允许在多个沙箱或安全域之间共享类定义。 18. **arguments 对象**:在函数内部,arguments 对象提供对函数调用时传入的所有参数的访问,...

    C#获取运行程序路径

    然而,这里通过`Thread.GetDomain()`获取当前线程所属的应用程序域,这在多线程环境中可能会有所差异。 #### 10. 获取正在执行的程序集的位置 ```csharp string str10 = System.Reflection.Assembly....

    C#获取程序运行路径的几种方式

    4. **System.Threading.Thread.GetDomain().BaseDirectory**: 同上,返回当前应用程序域的基础目录。 ```csharp string path = System.Threading.Thread.GetDomain().BaseDirectory; ``` 5. **Environment....

Global site tag (gtag.js) - Google Analytics