参考文章: 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中元件库中的元件 【转】相关推荐

  1. as3调用外部swf里的类的方法

    as3项目要调用外部swf里的类有3种方法: 1.将外部的swf发布为swc,使用时将swc引用添加到相应的项目中,这应该是最简单的一种引用.不过当项目中的类或组件比较多时就会使项目发布生成的swf文 ...

  2. Proteus元件库中添加第三方的单片机芯片

    proteus是我们常用的用来模拟仿真的EDA软件之一,但是有些仿真确苦于没有自带的软件库无法实现,下面是如何将所需的芯片导入proteus中的方法. 注意:在proteus中添加第三方库需在prot ...

  3. Altium Designer 往元件库中添加新元件

    Altium Designer 往元件库中添加新元件 首先,在元件官网找到所需元件的封装信息 各个公司的官网网址: Analog Device: https://www.analog.com/cn/i ...

  4. 解决Axure的元件库中部分原件不可使用的方法

    Axure的元件库中部分原件不可使用 使用Axure元件库的时候,发现有些基本元件消失不可使用了,这时候只要重新载入就好了 操作如下: 点击加载库 然后找到Axure RP 8\DefaultSett ...

  5. 1062lcd在dxp哪个库_dxp_2004_元件库中的常用元件所在位置

    ########### DXP2004 下 Miscellaneous Devices.Intlib 元件库中常用元件有: 电阻系列( res* )排组( res pack* ) 电感( induct ...

  6. oracle urlencode 中文,Python2和Python3中urllib库中urlencode的使用注意事项

    前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包 ...

  7. Allegro中封装库中的封装更新到PCB中出现焊盘中心错位

    Allegro中封装库中的封装更新到PCB中出现焊盘中心错位 今天在画一个板子的时候,直接复制的上一个工程的LIB,在导入原理图网表更新后,焊盘中心出现错位. 使用的是一个锅仔片的封装,出现错误如下图 ...

  8. WEB前后端交互原型通用元件库、常用组件、信息输出、信息输入、信息反馈、综合系列、页面交互、首页、分类页、内容详情、用户中心、注册登录、找回密码、元件库、web元件库、rplib、axure

    WEB前后端交互原型通用元件库.常用组件.信息输出.信息输入.信息反馈.综合系列.页面交互.首页.分类页.内容详情.用户中心.注册登录.找回密码.元件库.web元件库.rplib.axure原型 we ...

  9. IPAD移动端交互原型通用设计方案、ipad元件库、移动元件库、元件列表、设计元件、交互示例、界面模板、设备模板、手势图标、社交界面、音乐、电商、视图控制器、指示器、指纹解锁、手势解锁、rp元件库

    IPAD移动端交互原型通用设计方案.ipad元件库.移动元件库.元件列表.设计元件.交互示例.界面模板.设备模板.手势图标.社交界面.音乐.电商.视图控制器.指示器.指纹解锁.手势解锁.rp元件库.平 ...

最新文章

  1. Plotly绘制时间序列图实战:简单时序图、时间范围限制的时序图
  2. Codejock的使用--皮肤
  3. sql 按 月份 结余_积累中沉淀,反思中提升——白霓镇幼儿园九月份工作总结会...
  4. android 单选框 icon,Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解...
  5. U3D 代码自动化生成定制预置体的旋转问题
  6. RequestBody获取前端数据_360视频云Web前端HEVC播放器实践剖析
  7. 对ASCALL码的理解
  8. 高级java开发_适用于高级Java开发人员的十大书籍
  9. mysql 扫描所有字段_select扫描mysql innodb表时,select只输出主键列,会不会扫描全表?...
  10. 删库跑路事件发生,SaaS云服务如何守护数据安全
  11. linux怎么启动端口服务,Linux 根据端口快速停止服务并启动的办法
  12. DataGrid的多行提交
  13. PgSQL · 应用案例 · 聚集存储 与 BRIN索引
  14. 21模块-orientation【管理设备的方向信息】
  15. 使用php建立评论系统
  16. 移动端开发——APP端上H5容器化建设
  17. 《asp.net夜话》一书视频ASP.NET夜话视频1-14章下载(ASP.NET夜话2009年5月8日更新)
  18. vb动态加入ShockwaveFlash后怎么用ShockwaveFlash1_FSCommand?
  19. C语言 typedef 简介
  20. IBM AIX 入门培训

热门文章

  1. 发生地震等灾难,死难者的存款会怎么处理?
  2. ue4 无限地图_UE4大地图(流关卡、无缝地图)
  3. tp3.2 不能提交到action方法_什么是死锁,如何避免死锁(4种方法)
  4. 设计师电脑推荐笔记本_笔记本电脑选购推荐全攻略
  5. apache php mysql 整合_PHP+Apache+MySQL整合
  6. wince怎么刷carplay_Carplay支持仪表/HUD显示 宝马为全球超750000辆车发布OTA升级
  7. mac定时执行python_Python脚本实现在Mac上DIY定时提醒功能
  8. python之socket
  9. ncnn:提取所有层特征值
  10. oracle 自定义 聚合函数