Flash 访问AMF调用操作脚本3的响应程序对象

Flash 访问AMF调用操作脚本3的响应程序对象,flash,actionscript-3,oop,remoting,Flash,Actionscript 3,Oop,Remoting,我是AS3的初学者,我正在使用FlashDevelop作为IDE,我正在尝试连接到AMF3服务amfphp并获取用户详细信息 我可以使用AMFinit函数中的此代码连接到AMF服务 private function AMFinit():void{ AMFService.objectEncoding = ObjectEncoding.AMF3; AMFService.connect(AMFServiceURL); AMFService.addEventListener(Ne

我是AS3的初学者,我正在使用FlashDevelop作为IDE,我正在尝试连接到AMF3服务amfphp并获取用户详细信息

我可以使用AMFinit函数中的此代码连接到AMF服务

private function AMFinit():void{
    AMFService.objectEncoding = ObjectEncoding.AMF3;
    AMFService.connect(AMFServiceURL);
    AMFService.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);

    var responder:Responder = new Responder(AMF_MyUserInfo, AMF_onFault);           
    AMFService.call("Danisman.GetUserWithIdentifier", responder, user_identifier);

    // I NEED TO USE returned object data here!!
}
在AMF_MyUserInfo函数中,我可以从响应程序中获取返回的对象,并且我可以成功地跟踪它,下面是代码

private function AMF_MyUserInfo(res:Object):void {
    AMF_onResult(res);
    trace(res.user_ID + res.username);
}
但是要在AMF_MyUserInfo函数之外使用,我想将res对象复制到另一个对象。我尝试在类中指定一个对象,并使用this.myobject=res在AMF_MyuserInfo函数中将res设置为此对象,但没有成功。我也试过这个.myobject.username=res.username,但也不起作用

我是OOP的新手,如何在全局或AMFinit函数中使用这个res对象

感谢您的帮助…

如果您可以跟踪函数中的res值,那么一切都应该正常。不知道会出什么问题

但是,我不熟悉AMF服务。因此无法告诉您它如何处理您的res对象。因为这就是AS3中对象的情况:

var startObject : Object;
var dublicate : Object;

startObject = new Object ();   // creating new object
startObject.userID = 'myname'; // setting some parameters there

dublicate = startObject;       // referencing you dublicate to the startObject
startObject.userID = null;     // changeing startObject property
trace ( dublicate.userID );    // dublicate is also affected ( output: null )

// another example
startObject = new Object ();   // creating new object
startObject.userID = 'myname'; // setting some parameters there

dublicate = new Object ();     // creating new dublicate object
dublicate.userID = startObject.userID; // setting the dublicate parameter
                                       // with start Object parameter

startObject.userID = null;     // changing startObject property
trace ( dublicate.userID );    // dublicate is not affected, because it is not
                               // a reference but independant object.
                               // ( output: myname)
如果要使用任何属性全局创建新类:

package
{
    public class GlobalVariables
    {
        static public var userName : String;
        static public var userID : String;
    }
}
然后您可以像这样访问它们:

GlobalVariables.userName

希望它能对您有所帮助。

为了以这种方式使用全局变量,变量必须是静态的。或者,您可以将这个类设置为单身。