AS3 调用外部SWF中元件库中的元件 【转】
参考文章: http://www.blueidea.com/tech/multimedia/2008/5842_2.asp
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/djy1135/archive/2009/11/13/4807925.aspx
一、目的
bb.swf的元件库中有一个元件,在aa.swf中调用这个元件,显示到舞台上
二、步骤
bb.swf
1.新建bb.fla,在上面画一个圆
2.选择这个圆,将其转换为元件,并选择”Export for ActionScript”,类名取为”Yuan”
3.在舞台上删除这个元件(删除后,只在元件库中有该元件)
4.Ctrl+Enter 运行bb.fla , 生成bb.swf
aa.swf
1.新建aa.fla
2.在时间轴上加如下代码
var cl:ClassLoader = new ClassLoader(“bb.swf”); //加载bb.swf文件
cl.addEventListener(Event.COMPLETE, cm_fun);
function cm_fun(e:Event){
var Yuan:Class = cl.getClass(“Yuan”) as Class;
var yuan:DisplayObject = new Yuan();
yuan.x = 50;
yuan.y = 100;
yuan.alpha = .5;
addChild(yuan);
}
三、类加载文件
package {
import flash.display.Loader;
import flash.net.URLRequest;
import flash.utils.ByteArray;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.EventDispatcher;
import flash.system.LoaderContext;
public class ClassLoader extends EventDispatcher{
public var url:String;
public var loader:Loader;
//构造函数
public function ClassLoader(obj:Object = null,lc:LoaderContext = null) {
if(obj != null){
if(obj is ByteArray){
loadBytes(obj as ByteArray,lc);
}else if(obj is String){
load(obj as String,lc);
}else{
throw new Error(“参数错误,构造函数第一参数只接受ByteArray或String”);
}
}
}
//加载
public function load(_url:String,lc:LoaderContext = null):void{
url = _url;
loader = new Loader;
loader.load(new URLRequest(url),lc);
addEvent();
}
//加载字节
public function loadBytes(bytes:ByteArray,lc:LoaderContext = null):void{
loader = new Loader;
loader.loadBytes(bytes,lc);
addEvent();
}
//开始侦听
private function addEvent():void{
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressFun);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeFun);
}
//结束侦听
private function delEvent():void{
loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,progressFun);
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,completeFun);
}
//加载成功,发布成功事件
private function completeFun(e:Event):void {
delEvent();
dispatchEvent(e);
}
//加载过程
private function progressFun(e:ProgressEvent):void{
dispatchEvent(e);
}
//获取定义
public function getClass(className:String):Object {
return loader.contentLoaderInfo.applicationDomain.getDefinition(className);
}
//是否含有该定义
public function hasClass(className:String):Boolean {
return loader.contentLoaderInfo.applicationDomain.hasDefinition(className);
}
//清除
public function clear():void{
loader.unload();
loader = null;
}
}
}
转载于:https://www.cnblogs.com/chenhaib/archive/2011/12/19/2293357.html
AS3 调用外部SWF中元件库中的元件 【转】相关推荐
- as3调用外部swf里的类的方法
as3项目要调用外部swf里的类有3种方法: 1.将外部的swf发布为swc,使用时将swc引用添加到相应的项目中,这应该是最简单的一种引用.不过当项目中的类或组件比较多时就会使项目发布生成的swf文 ...
- Proteus元件库中添加第三方的单片机芯片
proteus是我们常用的用来模拟仿真的EDA软件之一,但是有些仿真确苦于没有自带的软件库无法实现,下面是如何将所需的芯片导入proteus中的方法. 注意:在proteus中添加第三方库需在prot ...
- Altium Designer 往元件库中添加新元件
Altium Designer 往元件库中添加新元件 首先,在元件官网找到所需元件的封装信息 各个公司的官网网址: Analog Device: https://www.analog.com/cn/i ...
- 解决Axure的元件库中部分原件不可使用的方法
Axure的元件库中部分原件不可使用 使用Axure元件库的时候,发现有些基本元件消失不可使用了,这时候只要重新载入就好了 操作如下: 点击加载库 然后找到Axure RP 8\DefaultSett ...
- 1062lcd在dxp哪个库_dxp_2004_元件库中的常用元件所在位置
########### DXP2004 下 Miscellaneous Devices.Intlib 元件库中常用元件有: 电阻系列( res* )排组( res pack* ) 电感( induct ...
- oracle urlencode 中文,Python2和Python3中urllib库中urlencode的使用注意事项
前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包 ...
- Allegro中封装库中的封装更新到PCB中出现焊盘中心错位
Allegro中封装库中的封装更新到PCB中出现焊盘中心错位 今天在画一个板子的时候,直接复制的上一个工程的LIB,在导入原理图网表更新后,焊盘中心出现错位. 使用的是一个锅仔片的封装,出现错误如下图 ...
- WEB前后端交互原型通用元件库、常用组件、信息输出、信息输入、信息反馈、综合系列、页面交互、首页、分类页、内容详情、用户中心、注册登录、找回密码、元件库、web元件库、rplib、axure
WEB前后端交互原型通用元件库.常用组件.信息输出.信息输入.信息反馈.综合系列.页面交互.首页.分类页.内容详情.用户中心.注册登录.找回密码.元件库.web元件库.rplib.axure原型 we ...
- IPAD移动端交互原型通用设计方案、ipad元件库、移动元件库、元件列表、设计元件、交互示例、界面模板、设备模板、手势图标、社交界面、音乐、电商、视图控制器、指示器、指纹解锁、手势解锁、rp元件库
IPAD移动端交互原型通用设计方案.ipad元件库.移动元件库.元件列表.设计元件.交互示例.界面模板.设备模板.手势图标.社交界面.音乐.电商.视图控制器.指示器.指纹解锁.手势解锁.rp元件库.平 ...
最新文章
- Plotly绘制时间序列图实战:简单时序图、时间范围限制的时序图
- Codejock的使用--皮肤
- sql 按 月份 结余_积累中沉淀,反思中提升——白霓镇幼儿园九月份工作总结会...
- android 单选框 icon,Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解...
- U3D 代码自动化生成定制预置体的旋转问题
- RequestBody获取前端数据_360视频云Web前端HEVC播放器实践剖析
- 对ASCALL码的理解
- 高级java开发_适用于高级Java开发人员的十大书籍
- mysql 扫描所有字段_select扫描mysql innodb表时,select只输出主键列,会不会扫描全表?...
- 删库跑路事件发生,SaaS云服务如何守护数据安全
- linux怎么启动端口服务,Linux 根据端口快速停止服务并启动的办法
- DataGrid的多行提交
- PgSQL · 应用案例 · 聚集存储 与 BRIN索引
- 21模块-orientation【管理设备的方向信息】
- 使用php建立评论系统
- 移动端开发——APP端上H5容器化建设
- 《asp.net夜话》一书视频ASP.NET夜话视频1-14章下载(ASP.NET夜话2009年5月8日更新)
- vb动态加入ShockwaveFlash后怎么用ShockwaveFlash1_FSCommand?
- C语言 typedef 简介
- IBM AIX 入门培训
热门文章
- 发生地震等灾难,死难者的存款会怎么处理?
- ue4 无限地图_UE4大地图(流关卡、无缝地图)
- tp3.2 不能提交到action方法_什么是死锁,如何避免死锁(4种方法)
- 设计师电脑推荐笔记本_笔记本电脑选购推荐全攻略
- apache php mysql 整合_PHP+Apache+MySQL整合
- wince怎么刷carplay_Carplay支持仪表/HUD显示 宝马为全球超750000辆车发布OTA升级
- mac定时执行python_Python脚本实现在Mac上DIY定时提醒功能
- python之socket
- ncnn:提取所有层特征值
- oracle 自定义 聚合函数