在flashbuilder调试器模式下,当我在loginhandler方法中放置断点时,我可以检查FacebookDesktop.login返回的FacebookSession对象的所有props/vals。
然而,我似乎无法使用for…迭代FacebookSession对象。。。中。我已经使用ObjectUtil.isDynamicObject(…)检查了FacebookSession是否是动态的,但它不是,所以是for。。中应该有效。
public function gf_handle_facebook_login_return( argl_success : Object ,
argl_failure : Object ) : void
{ // IF I ADD breakpoint here, I get a fully populated argl_success object in flashbuilder's Debugger Variables tab.
trace( "gf_handle_facebook_login_return , A : " + typeof( argl_success ) + " , " + argl_success[ "uid" ] ) ; // works
trace( "gf_handle_facebook_login_return , C : " + ObjectUtil.isDynamicObject( argl_success ) ) ; // false ... is NOT a dynamic class
var lvo_FBS : FacebookSession = FacebookSession ( argl_success ) ; // tried it with and without casting
var lvn_prop :* ;
for ( lvn_prop in lvo_FBS)
{ trace( "gf_handle_facebook_login_return , D : " + lvn_prop ) ; // is never called
}
for each( lvn_prop in lvo_FBS)
{ trace( "gf_handle_facebook_login_return , E : " + lvn_prop ) ; // is never called
}
}
For in将只循环通过动态属性,正如您所说,它不是动态的
试试这个例子
//Get an XML description of this class
//and return the variable types as XMLList with e4x
var varList:XMLList = flash.utils.describeType(myVO)..variable;
for(var i:int; i < varList.length(); i++){
//Show the name and the value
trace(varList[i].@name+':'+ myVO[varList[i].@name]);
}