as3遍历对象所有属性的方法
1:
ObjectUtil.getClassInfo(this._arr[0]).properties as Array
2:
var o:Object=new Object();
o.name='mm';
o.type='size';
o.size='32D';
for (var i:String in o)
{
trace(i);
trace(o[i]);
}
3:
flash.utils.describeType
{
public class Resume
{
private var _name : String ="NAME";
private var _sex : String ="SEX";
private var _age : String="AGE";
private var _timeArea : String="TIMEAREA";
private var _company : String="COMPANY";
public function Resume(){
super();
}
public function get name():String
{
return _name;
}
public function get sex():String
{
return _sex;
}
public function get age():String
{
return _age;
}
public function get timeArea():String
{
return _timeArea;
}
public function get company():String
{
return _company;
}
}
}
var resume:Resume = new Resume();
var xml:XML = describeType(resume);
trace("xml : "+xml.toXMLString());//遍历转换xml格式的数据
trace("/");
for(var i:int =0;i<xml.accessor.length();i++){
trace("name :"+xml.accessor[i].@name);//获取类的属性名
trace("value : "+resume[xml.accessor[i].@name]);//获取类属性值
4.
可以使用ObjectUtil类的getClassInfo函数
代码如下:
public static function copyProperty(objTo:Object, objFrom:Object):void{
if(objTo == null || objFrom == null) return;
var claInfo:Object = ObjectUtil.getClassInfo(objTo);
var props:Array = claInfo["properties"];
for each(var q:QName in props){
try{
if(objFrom.hasOwnProperty(q.localName)){
objTo[q.localName] = objFrom[q.localName];
}
}catch(err:Error){}
}
}
通过ObjectUtil.getClassInfo(obj)获取某个对象的类信息,类的属性和方法都放在返回的对象的'properties'属性数组中,通过遍历该数组就可以遍历类的属性和方法,