教程分類
教程瀏覽排行

Flash AS3.0教程:用反射動態創建實例

用反射動態創建實例

使用new運算符創建對象或實例時,直接調用了某個具體類的構造函數,而在編寫程序時,經常需要動態地創建類的實例,這時可以使用反射來創建實例。

例如,如果僅知道某個實例,而不知道實例對應的類,就可以用反射來創建實例。AS3中的所有類都屬于Class類型,例如,MovieClip是一個Class,Bitmap也是一個Class。

例:
1、新建一個Flash文檔

2、單擊圖層第一幀,打開動作面板,輸入代碼:

//動態得到類的構造函數
var classcontructor:Class = MovieClip;
//創建相關類的實例
var mc:MovieClip = new classcontructor();
mc.graphics.beginFill(0xff9900,100);
mc.graphics.drawRect(0,0,100,100);
addChild(mc);

3、測試影片,可看到繪制的矩形圖。

上面的代碼并沒有直接用MovieClip類來創建實例,而是先把MovieClip類保存在一個數據類型為Class的變量 “classcontructor”中,再通過“classcontructor”來創建實例。當“classcontructor”的值改為其他類型時,創建的實例也就屬于其他類型。

用同樣的方法把庫中的圖片導出來,步驟同上,看代碼:

//保存鏈接名
var linkname:String = "BigPhoto";
//得到類信息
var cla:Class = getDefinitionByName(linkname);
//創建類的實例
var bitmapdata:BitmapData = new cla(50,50);
var img:Bitmap = new Bitmap(bitmapdata);
addChild(img);

測試影片,可看到從庫中導出的圖片。(測試此代碼請選擇【文件】【發布設置】Flahs選項卡,ActionScript 版本(A)點設置,把嚴謹模式的勾去掉,點確定。)

用上面的原理,可以根據鏈接名來從庫中動態導出圖片,深入下去,可制作swf素材庫,根據庫中的鏈接名可以動態導出素材。
 

來源:本站整理 發布時間:2009-9-1 18:31:17 瀏覽次數
上一篇教程:Flash AS3.0教程:初識AS3.0
下一篇教程:Flash AS3.0教程:代碼的位置
教程評論


評論人: 驗證碼:
內 容:
相關教程
最新中文无码字字幕在线