对于swc文件的动态加载
来源:互联网 发布:淘宝网中老年女上装 编辑:程序博客网 时间:2024/05/21 13:23
对于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项目中的引用类型该为合并到代码中[2]将swc加载到当前的swf中去,使用的方法是
private var m_fzip:FZip;
m_fzip = new FZip;
m_fzip.addEventListener(Event.COMPLETE, onFZipLoad);
m_fzip.load(new URLRequest(url));
private function onFZipLoad(e:Event):void
{
var f:ByteArray = m_fzip.getFileByName("library.swf").content;
var ldr:Loader = new Loader;
var lc:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain)
ldr.loadBytes(f, lc);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLibLoad);
}
private function onLibLoad(evt :Event)
{
}
只要在这个swf中有swc中swf的加载就可以了,这样,只要你在这个as3项目中使用flex的类就可以了。这个过程详单于c++中的,将dll放到该程序的路径下一样。
(2)同样的你也可以采用动态加载swc的方法,这时候你不需要将as3添加flex库项目,你只是在上面代码中需要必要的修改
private function onLibLoad(evt :Event)
{
//在这个地方来调用要使用的类
evt.target.applicationDomain.getDefinition("Name");这样就可以了
}
- 对于swc文件的动态加载
- 动态加载SWC文件
- flash as3 加载swc文件
- flex -------swc文件无法加载
- Flex动态加载swc和swf中的class
- Flex动态加载swc和swf中的class
- Flex动态加载swc和swf中的class
- 对于文件加载完成的一些心得
- C# 对于GridControl 动态加载动态生成的GridView
- 2005-6-30对于动态加载类的第一步了解
- class文件的动态加载
- flex制作swc文件
- flex制作swc文件
- 对于ccbi文件的加载使用的理解
- 使用Ant编译出flex的swc文件
- swc的打包
- 使用forName动态加载类文件,动态加载不适合数组,动态加载数组的方法
- 如何生成swc库文件
- Python socket编程
- 使用jQuery清空file文件域的解决方案
- delphi 小知识(留着以后复习)
- 数据结构--单链表“环"的问题(2)
- 坚强,就是我们最普通的伟大
- 对于swc文件的动态加载
- Groovy探索 使用集合方法,写出更加Groovy风格的代码
- Android 的网络编程
- 重写控件时 getScrollX() 获取的值是
- View.VISIBLE、INVISIBLE、GONE的区别
- Android项目之——Activity悬浮并可拖动(访悬浮歌词)
- SJ9006: 在 IE6 IE7 IE8(Q) 中不能在 JSON 字符串或对象直接量的最后一个键值对后加 ','
- jdk环境变量的配置
- 图片上下滚动特效