最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AS3自寫(xiě)類(lèi)整理筆記 ClassLoader類(lèi)

 更新時(shí)間:2008年06月04日 19:41:18   作者:  
在用flash做項(xiàng)目的時(shí)候,把一些元件,通過(guò)設(shè)置鏈接類(lèi),然后使用這個(gè)類(lèi),通過(guò)getClass方法即可把這個(gè)素材拿下來(lái)

例子1:


圖2

這是一個(gè)虛擬人物形象的動(dòng)作包,其中包含了8種不同的動(dòng)作
在使用ClassLoader加載這個(gè)swf的動(dòng)作包后,即可使用getClass來(lái)調(diào)用這些素材,而且可以重復(fù)的new這些元件,來(lái)達(dá)到多次重復(fù)使用

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:
將設(shè)我有一個(gè)類(lèi)庫(kù),有這么三個(gè)類(lèi)

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

我們另外建一個(gè)文件,來(lái)加載這個(gè)所謂的類(lèi)庫(kù)

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的結(jié)果:
 * [class ByteLoader]
 * [class ClassLoader]
 * [class Dot]
 */

我們的目的就達(dá)到了!

接下來(lái)是源代碼!

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;

    //構(gòu)造函數(shù)
    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("參數(shù)錯(cuò)誤,構(gòu)造函數(shù)第一參數(shù)只接受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();
    }

    //開(kāi)始偵聽(tīng)
    private function addEvent():void{
      loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressFun);
      loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeFun);
    }

    //結(jié)束偵聽(tīng)
    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);
    }

    //加載過(guò)程
    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;
    }
  }
}

相關(guān)文章

  • as3+xml+asp+access做的有獎(jiǎng)問(wèn)答

    as3+xml+asp+access做的有獎(jiǎng)問(wèn)答

    as3+xml+asp+access做的有獎(jiǎng)問(wèn)答實(shí)現(xiàn)代碼
    2009-02-02
  • ActionScript 3.0 編程體驗(yàn)

    ActionScript 3.0 編程體驗(yàn)

    日前,Adobe公司發(fā)布了Flash的最新版本Flash Professional 9 ActionScript 3.0 Preview,這是Flash 9的預(yù)覽版,正式版本估計(jì)要到2007年才會(huì)推出,
    2008-03-03
  • AS3自寫(xiě)類(lèi)整理筆記 Dot類(lèi)

    AS3自寫(xiě)類(lèi)整理筆記 Dot類(lèi)

    拖拽物體1和物體2,就可以看到效果了 index.base.geom.Dot類(lèi)講解 基本功能:記錄xy兩點(diǎn)
    2008-06-06
  • Actionscript 3.0中Singleton實(shí)現(xiàn) 修正篇

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

    說(shuō)明:上一篇"一個(gè)簡(jiǎn)單的Actionscript的單態(tài)模式類(lèi)"的實(shí)現(xiàn)在Actionscript中報(bào)錯(cuò),具體原因會(huì)在這篇Blog中詳細(xì)說(shuō)明。
    2009-02-02
  • 火山動(dòng)態(tài)文本滾動(dòng)條V5[AS3版]

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

    功能說(shuō)明:本版滾動(dòng)條除了繼續(xù)保持體積?。ㄐ∮?K),界面容易修改,資源占用率小的優(yōu)勢(shì)外,主要有以下幾點(diǎn)改進(jìn): 1,使用AS3編寫(xiě)。 2,寬高動(dòng)態(tài)指定。 3,增加滾動(dòng)條背景點(diǎn)擊事件。 4,消除了鼠標(biāo)滾輪無(wú)法同時(shí)準(zhǔn)確控制多個(gè)文本框的重大BUG。
    2008-03-03
  • 編寫(xiě)高效率的AS3代碼的小技巧

    編寫(xiě)高效率的AS3代碼的小技巧

    最近我研究了一些AS3代碼優(yōu)化的文章,一般都是集中在研究loops 和 Number types上的,本文不在重復(fù)類(lèi)似的測(cè)試
    2009-02-02
  • AS3 navigateToURL導(dǎo)致ExternalInterface 執(zhí)行失敗問(wèn)題

    AS3 navigateToURL導(dǎo)致ExternalInterface 執(zhí)行失敗問(wèn)題

    AS3 navigateToURL導(dǎo)致ExternalInterface 執(zhí)行失敗問(wèn)題
    2009-02-02
  • ActionScript 3.0中用XMLSocket與服務(wù)器通訊程序(源碼)

    ActionScript 3.0中用XMLSocket與服務(wù)器通訊程序(源碼)

    一個(gè)簡(jiǎn)單的基于XMLSocket的封裝類(lèi)
    2009-02-02
  • as3 rollOver or mouseOver使用說(shuō)明

    as3 rollOver or mouseOver使用說(shuō)明

    rollOver與mouseOver同樣在鼠標(biāo)移到目標(biāo)上時(shí)觸發(fā)事件,細(xì)微區(qū)別在于,mouseOver的bubbles等于true,而rollOver的bubbles是false.
    2009-10-10
  • Actionscript 3.0 鼠標(biāo)事件

    Actionscript 3.0 鼠標(biāo)事件

    這本書(shū)是一本經(jīng)典的書(shū)籍,說(shuō)實(shí)話一些小的AS3的項(xiàng)目是做了好幾個(gè),基本的語(yǔ)法也都知道(其實(shí)有面向?qū)ο缶幊陶Z(yǔ)言的基礎(chǔ)后再入門(mén)一門(mén)新的語(yǔ)言還是很快的)。現(xiàn)在找到了這邊經(jīng)典書(shū)籍完整版,就好好看看,順便寫(xiě)一些總結(jié)。
    2009-02-02

最新評(píng)論

怀柔区| 洱源县| 双辽市| 会同县| 张掖市| 珠海市| 大姚县| 吉安县| 清远市| 延津县| 吉隆县| 固阳县| 蓝田县| 合水县| 南阳市| 利辛县| 铁力市| 卓尼县| 大足县| 乌兰浩特市| 綦江县| 诸城市| 丹东市| 阿鲁科尔沁旗| 吉林市| 武穴市| 禹州市| 西林县| 江山市| 福安市| 荣昌县| 蒙自县| 西城区| 岐山县| 兴海县| 砀山县| 顺平县| 大理市| 和平县| 侯马市| 瓦房店市|