flash cs6类加载和应用程序域有什么作用?

Flash CS6中的类加载和应用程序域主要作用于Flash应用程序的模块化开发和优化。类加载可以让我们在使用当前应用程序的同时,动态的添加或移除一些可选的模块。应用程序域则可以控制不同类之间的相互访问。

类加载

加载外部类库

动态加载外部AS文件,并将其中一个类创建为对象。可以使用Loader来完成这个任务,代码如下:

//获取外部AS文件的文件位置
var url:URLRequest = new URLRequest("example.swf");

//创建Loader实例,加载外部AS文件
var loader:Loader = new Loader();
loader.load(url);

//监听加载完成事件
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

function onComplete(e:Event):void {
    //从loader中获取加载完成的外部swf文件
    var swf:DisplayObject = loader.content;

    //从swf文件中获取我们要用的类(MyClass),并创建对象
    var MyClass:Class = swf.loaderInfo.applicationDomain.getDefinition("MyClass") as Class;
    var m:MyClass = new MyClass();
}

动态类定义

在应用程序运行时创建和定义AS3类。这个功能在一些需要动态扩展和定制的应用程序中非常有用。可以使用 ApplicationDomaingetDefinitionByName函数来实现这个特性:

//创建ApplicationDomain实例
var ad:ApplicationDomain = new ApplicationDomain();

//动态定义类
var ClassDefinition:Class = defineClass("MyNewClass", Object);
var c:Object = new ClassDefinition();

//将这个新定义的类添加到应用程序域中
ad.definitionByName("MyNewClass");

应用程序域

应用程序域定义了AS3类定义的可访问范围。当我们将多个swf或AS文件合并成一个完整的应用程序时,需要合理地控制应用程序域。

定义新的应用程序域

我们可以通过创建新的应用程序域来隔离不同的AS3定义。新的应用程序域可以单独控制加载、卸载以及运行。 代码如下:

var newApplicationDomain:ApplicationDomain = new ApplicationDomain();
var loader:Loader = new Loader();
var loaderContext:LoaderContext = new LoaderContext(false, newApplicationDomain);
loader.load(new URLRequest("example.swf"), loaderContext);

共享应用程序域

当我们想要跨多个SWF文件或模块使用相同的库或文件时,可以使用共享应用程序域。共享应用程序域可用于在许多SWF文件之间共享类定义。举个例子,假设我们定义了一个MyClass类,并将其加入了共享应用程序域:

var loader:Loader = new Loader();
var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
loader.load(new URLRequest("example.swf"), loaderContext);

然后,在其他的SWF文件中,我们可以通过以下方式在共享的应用程序域中获得这个类的引用:

var MyClass:Class = ApplicationDomain.currentDomain.getDefinition("MyClass") as Class;
var myClassInstance:* = new MyClass();

总的来说,通过控制类的加载和应用程序域,我们可以更加灵活地管理和优化Flash应用程序的开发和运行。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flash cs6类加载和应用程序域有什么作用? - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 电脑右键发送到快捷键突然不见了怎么办?

    电脑右键发送到快捷键消失,多数情况下是由于快捷键选项被关闭或被卸载了对应程序所导致的。下面是一些可能的解决方案: 检查快捷键选项 打开文件资源管理器,右键点击文件或文件夹,检查是否正常地显示“发送到”并包含“快捷键”选项。 如果“快捷键”选项不在“发送到”列表中,可以按下Shift键,并右键点击相应文件或文件夹,在菜单中找到“发送到”选项,并按下“快捷键”选…

    other 2023年6月27日
    00
  • A,B,C类的IP地址详细介绍

    IP地址分类详细介绍 IP地址是用于在互联网上唯一标识设备的一组数字。根据其特定的规则,IP地址可以分为A类、B类和C类。下面将详细介绍每个类别的IP地址。 A类IP地址 A类IP地址是最常见的IP地址类型,其范围从1.0.0.0到126.0.0.0。A类IP地址的第一个字节范围是1到126,其余三个字节可以用于主机标识。A类IP地址的网络部分占据了第一个字…

    other 2023年7月29日
    00
  • 深入了解Android IO的底层原理

    深入了解Android IO的底层原理 IO(输入输出)是Android系统中的基本操作之一。本攻略将深入探究Android IO的底层原理,包括如何使用Java IO和NIO进行文件读写,如何使用内存映射文件进行快速读写等内容。 Java IO Java IO是Android系统中最常用的IO操作方式之一,其底层实现基于操作系统提供的文件IO操作(read…

    other 2023年6月27日
    00
  • java-bigdecimal减法 结果为负

    在Java中,使用BigDecimal类进行数值计算时,可能会出现减法结果为负数的情况。这是由于BigDecimal类的精度和舍入模式的设置不当所导致的。本文详细介绍何解决BigDecimal减法结果为负数的问题,并提供两个示例说明。 问题描述 在Java中,使用BigDecimal`类减法计算时,可能会出现结果为负数的情况。例如,以下代码: BigDeci…

    other 2023年5月7日
    00
  • 电脑总重启提示Dcom server process服务意外终止怎么办?

    电脑总重启提示Dcom server process服务意外终止怎么办? 如果您的电脑出现了总是重启且提示Dcom server process服务意外终止的问题,可能会影响您的正常使用。但是通过以下的步骤进行简单的解决,您可以很快恢复您的电脑。 1.了解问题原因 Dcom server process服务是一种接口,它允许多个应用程序通过网络相互通信。当D…

    other 2023年6月27日
    00
  • ASP.NET全栈开发教程之在MVC中使用服务端验证的方法

    ASP.NET是一个非常强大的Web开发框架,其中MVC是其中一种常用的模式。在MVC开发中,服务端验证是非常重要的一步,可以防止用户提交无效或恶意数据。 以下是使用服务端验证的步骤: 第一步:在视图中添加表单 <form action="/Home/Index" method="post"> <di…

    other 2023年6月27日
    00
  • c#常用表格控件dataGridView的分页显示

    关于c#常用表格控件dataGridView的分页显示,这里提供一份完整攻略,包含以下几个部分: 准备工作 数据源绑定 分页控件的使用 代码示例 参考资料 下面对每个部分进行详细说明。 一、准备工作: 在开始使用dataGridView进行分页显示之前,需要做好一些准备工作,包括:1. 安装并引用数据库基础组件,例如MySql.Data.dll;2. 创建数…

    other 2023年6月26日
    00
  • Highchart基础教程-图表的主要组成

    下面是“Highchart基础教程-图表的主要组成的完整攻略”,包括图表的主要组成、使用方法、两个示例说明等方面。 图表的主要组成 Highchart是一个基于JavaScript的图表库,它可以用来创建各种类型的图表,包括线图、柱状图、饼图等。一个Highchart图表主要由以下几个组成部分: 标题:用于描述图表的主题或主要内容。 坐标轴:用于显示数据的坐…

    other 2023年5月5日
    00
合作推广
合作推广
分享本页
返回顶部