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

Flash AS3教程:ClassLoader類

互聯(lián)網(wǎng)   發(fā)布時間:2008-10-06 01:25:27   作者:佚名   我要評論
前面介紹了Flash AS3教程:Dot類,接著介紹ClassLoader類! 主要用途: 1、在用flash做項目的時候,把一些元件,通過設置鏈接類,然后使用這個類,通過getClass方法即可把這個素材拿下來 圖1(詳見例1) 2、將許多許多的類分庫到不同的swf中,然后通過調用swf,
前面介紹了Flash AS3教程:Dot類,接著介紹ClassLoader類!
主要用途
1、在用flash做項目的時候,把一些元件,通過設置鏈接類,然后使用這個類,通過getClass方法即可把這個素材拿下來


圖1(詳見例1)
2、將許多許多的類分庫到不同的swf中,然后通過調用swf,達到調用類庫的功能,然后通過getClass來獲取類(詳見例2)
index.base.net.ClassLoader類講解:
加載swf文件,并且通過調用getClass獲取類,也可以獲取命名空間或者函數(shù)的定義
構造函數(shù)
public function ClassLoader(obj:Object = null,lc:LoaderContext = null)
參數(shù)1可以是字符串,可以是ByteArray,如果為前者則采用load方法,后者采用loadBytes方法
參數(shù)2是創(chuàng)建帶有指定 LoaderContext 對象的ClassLoader實例,LoaderContext 可以設置是否加載跨域文件,應用程序域等,詳見官方LoaderContext類講解!
load 方法
public function load(_url:http://www.fzitv.net/flash/String,lc:LoaderContext = null):void
加載文件
參數(shù)1是加載地址,參數(shù)2見構造函數(shù)
loadBytes 方法
public function loadBytes(bytes:ByteArray,lc:LoaderContext = null):void
加載字節(jié)文件
參數(shù)1是字節(jié)數(shù)據(jù),參數(shù)2見構造函數(shù)
getClass 方法
public function getClass(className:http://www.fzitv.net/flash/String):Object
獲取一個公共定義,可以是類,也可以是命名空間或者函數(shù)定義
參數(shù)1是獲取class的完整包加類名,比如我們的這個類完整定義名稱是 index.base.net.ClassLoader
詳見例子
hasClass 方法
public function hasClass(className:http://www.fzitv.net/flash/String):Boolean
返回是否含有該公共定義
參數(shù)1見getClass方法
clear 方法
public function clear():void
清空
url 屬性
public var url:http://www.fzitv.net/flash/String
獲取url屬性
loader 屬性
public var loader:Loader
獲取loader屬性

例子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:
將設我有一個類庫,有這么三個類
然后把它編譯成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:http://www.fzitv.net/flash/String;
public var loader:Loader;

//構造函數(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 http://www.fzitv.net/flash/String){
load(obj as http://www.fzitv.net/flash/String,lc);
}else{
throw new Error("參數(shù)錯誤,構造函數(shù)第一參數(shù)只接受ByteArray或http://www.fzitv.net/flash/String");
}
}
}

//加載
public function load(_url:http://www.fzitv.net/flash/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:http://www.fzitv.net/flash/String):Object {
return loader.contentLoaderInfo.applicationDomain.getDefinition(className);
}

//是否含有該定義
public function hasClass(className:http://www.fzitv.net/flash/String):Boolean {
return loader.contentLoaderInfo.applicationDomain.hasDefinition(className);
}

//清除
public function clear():void{
loader.unload();
loader = null;
}
}
}

相關文章

  • flash cs6鼠標跟隨效果實現(xiàn)代碼分享

    flash cs6想要實現(xiàn)鼠標跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標跟隨效果的教程,需要的朋友可以參考下
    2019-05-19
  • Flash cs6怎么使用代碼輸入中英文文本?

    Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細的教程,需要的朋友
    2018-03-11
  • flash as3.0怎么定義抽象類和抽象?

    flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://www.fzitv.net/softs/408402.
    2018-02-28
  • flash cs6中怎么使用ActionScript3.0?

    flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細的教程,需要的朋友可以參考下
    2018-01-25
  • Flash中怎么實現(xiàn)鼠標點擊決定圖像位置?

    本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學習
    2018-01-12
  • Flash中如何用代碼將圖片放在自己想要的舞臺位置?

    本教程教腳本之家的ActionScript教程學習者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細,感興趣的朋友歡迎前來分享學習
    2017-11-20
  • 在Flash CS6中使用with函數(shù)繪制背景圖教程

    本教程教腳本之家的ActionScript教程學習者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細,方法也不難,非常適合Flash新手入門學習
    2017-11-18
  • Flash怎么設置元件坐標?flash使用代碼設置元件的坐標的教程

    Flash怎么設置元件坐標?flash中導如的元件需要添加坐標,該怎么定位元件坐標呢?下面我們就來看看flash使用代碼設置元件的坐標的教程,需要的朋友可以參考下
    2017-10-11
  • Flash怎么制作來回搖擺的花朵的動畫?

    Flash怎么制作來回搖擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細的教程,很簡單,需要的朋友可以參考下
    2017-05-23
  • Flash怎么制作流動七彩色的文字?

    Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細的教程,需要的朋友可以參考下
    2017-04-23

最新評論

怀远县| 新龙县| 景东| 渑池县| 昌平区| 天镇县| 秭归县| 额济纳旗| 宣化县| 丰都县| 天津市| 宜都市| 湟源县| 阳泉市| 长岛县| 吕梁市| 吴江市| 松滋市| 南江县| 鄂温| 高邮市| 大余县| 资源县| 中江县| 沈丘县| 桐柏县| 乳山市| 长乐市| 巨鹿县| 吉木乃县| 衡水市| 泽库县| 大方县| 庆安县| 定襄县| 南召县| 肃宁县| 儋州市| 法库县| 西平县| 宽城|