AS3 객체 스트리밍

2285 단어 as3
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'속성 그룹에 놓여 있습니다. 이 그룹을 훑어보면 클래스의 속성과 방법을 훑어볼 수 있습니다.
 

좋은 웹페이지 즐겨찾기