ActionScript3.0 反射

来源:互联网 发布:淘宝代运营靠谱吗2017 编辑:程序博客网 时间:2024/06/11 00:33

as3.0 反射 主方法:

package {import flash.display.Sprite;import flash.events.MouseEvent;import flash.utils.getDefinitionByName;import pages.Page;import pages.PageA;import pages.PageB;public class MyReflection extends Sprite {private static const PAGES:Array = [PageA,PageB];public function MyReflection() {stage.addEventListener(MouseEvent.CLICK, onClick);}protected function onClick(event:MouseEvent):void {this.load("PageA");}public function load(pageType:String):void {  //加载Class.  var pageClass:Class = getDefinitionByName("pages."+pageType) as Class;  //实例化Class.用接口接收  var instance:Page = new pageClass() as Page;  //调用方法.  instance.print();  } }}

接口:

package pages {public interface page {function print():void;}}

PageA:

package pages {public class PageA implements Page {public function PageA() { }public function print():void {trace("PageA");}}}

PageB:

package pages {  public class PageB implements Page  {public function PageB():void { }public function print():void {  trace("PageB");  }  }  }