AS3获取对象类名,getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName
2013-03-21 22:55
302 查看
原文地址:http://hi.baidu.com/haorui1130/item/41087b14232788fadceeca1b
首先先告诉大家,我要讲的是flash.utils包中的
getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName
可能帮助文档写的过于专业,程序底子差的不一定能看明白,我用我理解的,通俗的讲一遍给大家听。。
1、getDefinitionByName
如果你已知这个类的类名类路径,但是你又没办法得到这个类的原型,那么可以通过该函数,将已知的类名类路径转换为类的原型,然后还可以将得到的类原型进行实例化,比如:
var Tmp = getDefinitionByName("flash.display.Sprite");
var spr = new Tmp;
trace(spr is Sprite);
//输出 true
复制代码
通过getDefinitionByName得来的其实就是Sprite类,然后实例化,再判断spr是否为Sprite,得出的结果是true
2、getQualifiedClassName
如果你现在有个引用值,你不知道这个引用所表示的什么类,什么类路径,或许是个类不知道类名等等,想得到这个类的完整名字,那么可以使用它,比如:
var spr:Sprite = new Sprite;
trace(getQualifiedClassName(spr));
trace(getQualifiedClassName(Sprite));
//两者都是输出 flash.display::Sprite
复制代码
3、getQualifiedSuperclassName
这个方法就比较好玩了,是获取自己父类的类原型,比如你一系列的类是继承某个抽象类,而现在你无法得到这个抽象类,那么你可以使用该方法获得该抽象类的类原型,比如:
var spr:Sprite = new Sprite;
trace(getQualifiedSuperclassName(spr));
trace(getQualifiedSuperclassName(Sprite));
//两者都是输出 flash.display::DisplayObjectContainer
复制代码
其实这个三方法在日常编程很少用得到,但是了解一下并无害,而且这个三个方法,也经常出现在各大公司的面试题上,因为这几个用处不大,但是可以了解你对AS3的熟悉程度到了哪儿。
举一反三,竟然可以获得他的父类,那么抽象类的父类也可以获得拉?
请看:
var tmp = Sprite;
while(tmp != Object){
tmp = getDefinitionByName(getQualifiedSuperclassName(tmp));
trace(getQualifiedClassName(tmp));
}
/**
* 输出:
* flash.display::DisplayObjectContainer
* flash.display::InteractiveObject
* flash.display::DisplayObject
* flash.events::EventDispatcher
* Object
*/
复制代码
刨根揭底,把Sprite的长辈都挖出来了,不管父亲还是爷爷,或者爷爷的爷爷。。。
有意思吧?了解了解吧。。实质作用没多大,全当小说看吧
首先先告诉大家,我要讲的是flash.utils包中的
getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName
可能帮助文档写的过于专业,程序底子差的不一定能看明白,我用我理解的,通俗的讲一遍给大家听。。
1、getDefinitionByName
如果你已知这个类的类名类路径,但是你又没办法得到这个类的原型,那么可以通过该函数,将已知的类名类路径转换为类的原型,然后还可以将得到的类原型进行实例化,比如:
var Tmp = getDefinitionByName("flash.display.Sprite");
var spr = new Tmp;
trace(spr is Sprite);
//输出 true
复制代码
通过getDefinitionByName得来的其实就是Sprite类,然后实例化,再判断spr是否为Sprite,得出的结果是true
2、getQualifiedClassName
如果你现在有个引用值,你不知道这个引用所表示的什么类,什么类路径,或许是个类不知道类名等等,想得到这个类的完整名字,那么可以使用它,比如:
var spr:Sprite = new Sprite;
trace(getQualifiedClassName(spr));
trace(getQualifiedClassName(Sprite));
//两者都是输出 flash.display::Sprite
复制代码
3、getQualifiedSuperclassName
这个方法就比较好玩了,是获取自己父类的类原型,比如你一系列的类是继承某个抽象类,而现在你无法得到这个抽象类,那么你可以使用该方法获得该抽象类的类原型,比如:
var spr:Sprite = new Sprite;
trace(getQualifiedSuperclassName(spr));
trace(getQualifiedSuperclassName(Sprite));
//两者都是输出 flash.display::DisplayObjectContainer
复制代码
其实这个三方法在日常编程很少用得到,但是了解一下并无害,而且这个三个方法,也经常出现在各大公司的面试题上,因为这几个用处不大,但是可以了解你对AS3的熟悉程度到了哪儿。
举一反三,竟然可以获得他的父类,那么抽象类的父类也可以获得拉?
请看:
var tmp = Sprite;
while(tmp != Object){
tmp = getDefinitionByName(getQualifiedSuperclassName(tmp));
trace(getQualifiedClassName(tmp));
}
/**
* 输出:
* flash.display::DisplayObjectContainer
* flash.display::InteractiveObject
* flash.display::DisplayObject
* flash.events::EventDispatcher
* Object
*/
复制代码
刨根揭底,把Sprite的长辈都挖出来了,不管父亲还是爷爷,或者爷爷的爷爷。。。
有意思吧?了解了解吧。。实质作用没多大,全当小说看吧
相关文章推荐
- AS3获取对象类名,getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName
- AS3动态获取对象类名及类的方法,getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName
- 获取对象类型——getQualifiedClassName、getQualifiedSuperclassName、is和as的比较
- getDefinitionByName/getQualifiedClassName/getQualifiedSuperclassName
- (转)getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName用法
- (转)getDefinitionByName,getQualifiedClassName,getQualifiedSuperclassName用法
- JS原生获取class对象(getElementsByClassName)
- 学习AS3 getDefinitionByName (献给所有eval发烧友们)
- JS批量获取class命名节点的方法: getElementsByClassName()
- js原生封装getClassName()方法-ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素
- 通过class获取对象 getByClass()封装函数
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- js中获取类名的函数getElementsByClassName()
- getElementById;getElementsByName;getElementsByTagName获取对象的区别
- getElementsByClassName函数实现获取指定类名的子元素列表
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- jquery 根据name属性获取对象(=document.getElementByName("") )
- 获取表单对象,getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- js 获取class的元素的方法 以及创建方法getElementsByClassName