Flex中的反射和java中的反射类似,就是动态获取的信息和动态调用对象的方法被称为反射。
语法有一些不同,java中的反射大家都接触的比较多在此不做描述,重点讲Flex中的反射。
1、语法:
a、根据类名取类
var classReference:Class = Class(getDefinitionByName(”gds.jxbztj.classroom.ClassRoomTitleWindow”));
//一但你得到了类的引用后,就可以这样
var instance:Object = new classReference( );
instance对象就是根据类名获得的类的对象。
b、取类名: 传进一个object,返回类的全名
var classRoomTitleWindow:ClassRoomTitleWindow= new ClassRoomTitleWindow( );
var className:String = getQualifiedClassName(classRoomTitleWindow);
trace(className); // 打印出来gds.jxbztj.classroom.ClassRoomTitleWindow
c、取父类的类名:传进一个object,返回父类的类名
var classRoomTitleWindow:ClassRoomTitleWindow= new ClassRoomTitleWindow( );
var className:String = getQualifiedSuperclassName(classRoomTitleWindow);
2、注意事项
如果在系统中没有声明或使用过的类是不能反射的,因为Flex中在编译成swf时为了减少swf的大小会将所有声明或使用的类编译进去。所以在用反射时一定要确保系统中声明过,否则在使用时就必须声明他。
Flex中的反射和注意事项。
最新推荐文章于 2024-09-14 18:46:05 发布