flash_as3_facebook_api:如何迭代FacebookDesktop.login返回的FacebookS



在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]);
}

最新更新