2011年1月1日 星期六

flash.utils套件__getDefinitionByName()函數 - 傳回所指定之類別的類別物件參照

getDefinitionByName()函數
public function getDefinitionByName(name:String):Object
傳回 name 參數所指定之類別的類別物件參照。
參數
name:String — 類別的名稱。
傳回值
Object — 會傳回 name 參數所指定之類別的類別物件參照。
擲回值
ReferenceError — 具有指定之名稱的公用定義不存在。




991231_GetDefinitionByName_1.swf



package  {
 import flash.utils.getDefinitionByName;
 import flash.display.Bitmap;
 import flash.display.BitmapData;
 import flash.display.Bitmap;
 import flash.display.Loader;
 //import flash.display.MovieClip;
 import flash.display.Sprite;
 import flash.net.URLRequest;
 import flash.events.Event;
 import flash.events.ProgressEvent;
 import flash.text.TextField;
 import flash.text.TextFieldAutoSize;
 //import flashx.textLayout.formats.FormatValue;
 import flash.text.TextFormat;

 public class GetDefinitionByName_1_991231 extends Sprite{
  //
  private var urlString:String = "991230_GetDefinitionByName_1.jpg";
  //
  //getDefinitionByName函數傳回flash.display.Loader類別的參照,指定給Class型別的classReference變數。
  private var classReference:Class = getDefinitionByName("flash.display.Loader") as Class;
  //new 運算子建構classReference類別實體,指定給Object型別的ldr變數。ldr已經參照了Loader類別。
  private var ldr:Object = new classReference();
  private var tf:TextField = new TextField();
  //
  public function GetDefinitionByName_1_991231() {
   setTextField();
   ldrFun();
  }
  
  //
  function setTextField():void{
   //
   var format:TextFormat = new TextFormat();
   with(format){
    color = 0xffffff;
    size = 86;
    font = "Arial";
   }
   //
   addChild(tf);
   with(tf){
    defaultTextFormat = format;
    x = 0;
    y = stage.stageHeight/2 -50 ;
    width = stage.stageWidth;
    autoSize = TextFieldAutoSize.CENTER;
   }
  };
  
  //
  private function ldrFun():void{
   ldr.load(new URLRequest(urlString));
   trace(urlString);
   ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoaderProgress);
   ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
  }
  
  //
  private function onLoaderProgress(e:ProgressEvent):void{
   tf.text = String(Math.floor(e.bytesLoaded/e.bytesTotal*100));
  }
  
  //
  private function onComplete(e:Event):void{
   trace(ldr); // [object LoaderInfo]
   var ldrBm:Bitmap = e.currentTarget.content as Bitmap;
   var bmd :BitmapData = ldrBm.bitmapData;
   var bm:Bitmap = new Bitmap(bmd);
   trace(bmd); // [object BitmapData]
   addChild(bm);
   bm.x = 50;
   bm.y = 30;
  }

 }
 
}


適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__●flash.utils_getDefinitionByName()函數

沒有留言: