您的位置:首页 > 其它

[ActionScript 3.0] 如何获得实例对象的类名及类

2015-06-23 13:35 183 查看
package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;

public class QualifiedClass extends Sprite
{
private var _mc:MovieClip;

public function QualifiedClass()
{
this.graphics.beginFill(0x000000);
this.graphics.drawRect(0,0,500,500);
this.graphics.endFill();
_mc = new MovieClip();
_mc.graphics.beginFill(0x00ff00);
_mc.graphics.drawRect(0,0,50,50);
this.addChild(_mc);
stage.addEventListener(MouseEvent.CLICK,onClick);
_mc.addEventListener(MouseEvent.CLICK,onClick);
}
private function onClick(e:MouseEvent):void
{
//1.获得某个实例对象的类名:getQualifiedClassName (实例名字符串表达式);
trace("click");
trace(e.target.name); //返回instance**之类的
trace(getQualifiedClassName(e.target)); //返回元件名

//2.获得某个实例对象的类:constructor
trace(A.prototype.constructor);      // [class A]
trace(A.prototype.constructor == A); // true
var myA:A = new A();
trace(myA.constructor == A);         // true

//3.根据类名获得类: getDefinitionByName(类名);
var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
var instance:Object = new ClassReference();
instance.graphics.beginFill(0xff0000);
instance.graphics.drawRect(50, 50, 50, 50);
instance.graphics.endFill();
addChild(DisplayObject(instance));
}

}
}
dynamic class A {}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: