欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AS3自寫類整理筆記 ClassLoader類

 更新時間:2008年06月04日 19:41:18   作者:  
在用flash做項目的時候,把一些元件,通過設置鏈接類,然后使用這個類,通過getClass方法即可把這個素材拿下來

例子1:


圖2

這是一個虛擬人物形象的動作包,其中包含了8種不同的動作
在使用ClassLoader加載這個swf的動作包后,即可使用getClass來調用這些素材,而且可以重復的new這些元件,來達到多次重復使用

import index.base.net.ClassLoader;

var cl:ClassLoader = new ClassLoader;
cl.load("main.swf");

cl.addEventListener(Event.COMPLETE,fun);

function fun(e:Event){
  var tmp = cl.getClass("drag");
  addChild(new tmp); 
}

例子2:
將設我有一個類庫,有這么三個類

import index.base.net.ByteLoader;
import index.base.net.ClassLoader;
import index.base.geom.Dot;

var bl:ByteLoader;
var cl:ClassLoader;
var dot:Dot;

然后把它編譯成swf

我們另外建一個文件,來加載這個所謂的類庫

import index.base.net.ClassLoader;

var cl:ClassLoader = new ClassLoader;
cl.load("main.swf");

cl.addEventListener(Event.COMPLETE,fun);

function fun(e:Event){
  var tmp1 = cl.getClass("index.base.net.ByteLoader");
  trace(tmp1)

  var tmp2 = cl.getClass("index.base.net.ClassLoader");
  trace(tmp2)

  var tmp3 = cl.getClass("index.base.geom.Dot");
  trace(tmp3)
}

/**
 * trace的結果:
 * [class ByteLoader]
 * [class ClassLoader]
 * [class Dot]
 */

我們的目的就達到了!

接下來是源代碼!

package index.base.net{

  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();
    }

    //加載字節(jié)
    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);
    }

    //加載成功,發(fā)布成功事件
    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;
    }
  }
}

相關文章

  • Google Analytics在Flash cs3下的使用教程分析

    Google Analytics在Flash cs3下的使用教程分析

    因為工作的原因,最近使用到Google Analytics組件,這個組件在網上的資料很多,但是大部分都是詳談組件的優(yōu)勢的,具體的使用沒有很詳細的說明
    2009-02-02
  • ActionScript 3.0 編程體驗

    ActionScript 3.0 編程體驗

    日前,Adobe公司發(fā)布了Flash的最新版本Flash Professional 9 ActionScript 3.0 Preview,這是Flash 9的預覽版,正式版本估計要到2007年才會推出,
    2008-03-03
  • AS3打開新窗口不被屏蔽的代碼

    AS3打開新窗口不被屏蔽的代碼

    有時候flash打開的網址會出現(xiàn)被屏蔽的現(xiàn)象,如何能輕松的打開而不被屏蔽呢,下面是具體的代碼。
    2010-08-08
  • as3+xml+asp+access做的有獎問答

    as3+xml+asp+access做的有獎問答

    as3+xml+asp+access做的有獎問答實現(xiàn)代碼
    2009-02-02
  • As3.0 xml + Loader應用代碼

    As3.0 xml + Loader應用代碼

    簡單說說AS3.0中對于XML支持的不同吧: .AS2.0對XML的支持勉勉強強,將就著可以用。而AS3.0中對XML的支持是全方位的,極其強大和靈活的
    2008-03-03
  • AS3自寫類整理筆記 Dot類

    AS3自寫類整理筆記 Dot類

    拖拽物體1和物體2,就可以看到效果了 index.base.geom.Dot類講解 基本功能:記錄xy兩點
    2008-06-06
  • 火山動態(tài)文本滾動條V5[AS3版]

    火山動態(tài)文本滾動條V5[AS3版]

    功能說明:本版滾動條除了繼續(xù)保持體積?。ㄐ∮?K),界面容易修改,資源占用率小的優(yōu)勢外,主要有以下幾點改進: 1,使用AS3編寫。 2,寬高動態(tài)指定。 3,增加滾動條背景點擊事件。 4,消除了鼠標滾輪無法同時準確控制多個文本框的重大BUG。
    2008-03-03
  • flash PureMVC 使用例子

    flash PureMVC 使用例子

    昨天下了PureMVC, 看了一天文檔, 迷茫啊, 找例子也沒找到, 后來破解了一個看了一下, 大概地寫了一個簡單的用例, 先算是學習筆記吧, 先把這最簡單的例子做法寫一下吧( 也不知道這種理解是否正確哦~~汗一個!)
    2009-01-01
  • Actionscript 3.0中Singleton實現(xiàn) 修正篇

    Actionscript 3.0中Singleton實現(xiàn) 修正篇

    說明:上一篇"一個簡單的Actionscript的單態(tài)模式類"的實現(xiàn)在Actionscript中報錯,具體原因會在這篇Blog中詳細說明。
    2009-02-02
  • AS3 navigateToURL導致ExternalInterface 執(zhí)行失敗問題

    AS3 navigateToURL導致ExternalInterface 執(zhí)行失敗問題

    AS3 navigateToURL導致ExternalInterface 執(zhí)行失敗問題
    2009-02-02

最新評論