论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

学习Flash as中利用Library类--实现动态加载外部的显示元件和类的方法

文章类别:Flash AS | 发表日期:2009-8-2 18:19:33

学习Flash as中利用Library类--实现动态加载外部的显示元件和类的方法

这段时间在尝试使用fdt来开发Flash应用,在使用的过程发现如何使用fla文件的显示元件(这些显示元件本身也绑定了类,也有自己的功能)?这个问题也一直让我头疼。最近我参考了网上的一些开源项目再结合我自己的想法,终于解决了这个问题。我现在把这个Library类进行打包。它可以很方便的动态加载外部的显示元件和类,很适合在fdt和flex开发环境中使用,很方便把显示层的元件放到独立的swf里。
Library类(调用接口)
复制内容到剪贴板
代码:
package com.klstudio.swf {
    import flash.events.EventDispatcher;
    import flash.display.DisplayObject;
   
    [Event(name="ioError", type="flash.events.IOErrorEvent")]
   
    [Event(name="complete", type="flash.events.Event")]
   
    public class Library extends EventDispatcher implements ILibrary {
        function Library(path : String);
       
        public function getClassOf(linkage : String) : Class;
       
        public function getFactory() : ILibrary;
       
        public function getInstanceOf(linkage : String) : DisplayObject;
       
        public function load(path : String = "") : void;
    }
}
LibrarySWF类(调用接口)
复制内容到剪贴板
代码:
package com.klstudio.swf {
    import flash.display.MovieClip;
    import flash.events.EventDispatcher;
    import flash.display.InteractiveObject;
    import flash.display.Sprite;
    import flash.display.DisplayObjectContainer;
    import flash.display.DisplayObject;
   
    public class LibrarySWF extends MovieClip implements ILibrary {
        public function getClassOf(linkage : String) : Class;
       
        public function getInstanceOf(linkage : String) : DisplayObject;
    }
}
LibrarySWF类是用于绑定到fla文件(库里有显示元件)的文档类上即可
然后就可以直接外部调用了
复制内容到剪贴板
代码:
package com.klstudio.swf.test {
    import flash.display.DisplayObject;
    import flash.display.Sprite;
    import flash.events.IOErrorEvent;
    import flash.events.Event;
    import com.klstudio.swf.Library;   
    /**
     * @link kinglong@gmail.com
     * @author Kinglong
     * @playerversion fp9+
     * @version 0.1
     */
    [SWF(width="200",height="200",frameRate="24",backgroundColor="#CCCCCC")]
    public class TestLibrary extends Sprite {
        private var lib:Library;       
        public function TestLibrary(){
            lib = new Library("buttons.swf");
            lib.addEventListener(Event.COMPLETE, libHandler);
            lib.addEventListener(IOErrorEvent.IO_ERROR, libHandler);
            lib.load();           
        }
       
        private function libHandler(event:Event):void{
            trace(event);
            switch(event.type){
                case Event.COMPLETE:
                    var button:DisplayObject = lib.getInstanceOf("PlayButton");
                    button.x = 10;
                    button.y = 10;
                    addChild(button);
                    break;
                case IOErrorEvent.IO_ERROR:
                    break;
            }
        }
    }
}

 

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058