对于swc文件的动态加载

本文介绍了如何动态加载SWC文件并从中获取类。通过使用Loader和ApplicationDomain,详细阐述了一般加载SWF类的方法以及在AS3工程中处理Flex库项目的两种情况:合并到代码中和作为外部引用。提供了加载SWC并调用其中类的代码示例,类比于C++加载DLL的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于swc我们都知道他其实是一个压缩文件,解压以后分解为一个catalog.xml文件和一个library.swf文件

现在我们首先来讲解一下swf的加载:

使用的加载方式为:Loader,加载完成,使用loader.contentLoaderInfo.applicationDomain.getDefinition("Name")来获取在一个swf中的类。

也可以使用evt.target.applicationDomain.getDefinition("Name")来获取swf中的类。因为evt.target是loader.contentLoaderInfo,因为在添加监听的时候是这样子的。所以是这样的,然后使用var ClassName :* = evt.target.applicationDomain.getDefinition("Name");来得到Name这个类。后面就可以使用ClassName这个东西了,代表的是在swf中的类Name了。

这样的方法同时也适用于从swc解压出来的swf文件,在加载“library.swf”的时候,我们只要在最后的evt.target.applicationDomain.getDefinition("swf中的类")这样就可以获取swf(swc)中的类了。

上面的是一般的方法,即获取swf文件中的类的方法

下面来讲解一下如何从swc中获取相关的类。

分为两种情况来讲解:

(1)在你的工程中建立了一个flex库项目:无论你设置的库的“框架链接”是这两个任何的一项,好像都没有什么异同,随便怎么设置都可以,但是在你建立一个as3项目的时候,如果你设置是合并到代码中,那么在你的as3工程中是随便可以用的,你在flex库中的任何类。但是如果你设置的是外部,虽然你可以在as3工程中进行编辑,编译,也不会报错,因为你将flex库工程,加到了你的as3中去了,所以他认为可以找的到,但是在运行的时候,因为是外部的形式弄进来的,所有运行时会报错,说找不到某个类。

解决的方案有两种:[1]将as3项目中的引用类型该

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值