var ro_login:RemoteObject;
ro_login = new RemoteObject();
ro_login.source = "User";
ro_login.destination = "用户相关操作";//可选参数
ro_login.endpoint = "http://localhost/amfphp/gateway.php";
ro_login.login.addEventListener("result", resultHandler);//RemoteObject是动态类,可以动态添加属性,这里login就是User.php里类User的login方法。
ro_login.login.addEventListener("fault", onFault);
//MXML方式
<mx:RemoteObject
:1} 在amfphp/browser/里传递数组参数时,使用前面这种格式
8、只能接收return值,不能接收echo print_r等的输出值
AMFPHP 1.9新版问题修改
1、Flash环境下访问方法失败,而自带调试SWF正常,修改amfphp\gateway.php如下内容:
if(PRODUCTION_SERVER)
{
//Disable profiling, remote tracing, and service browser
$gateway->disableDebug();
// Keep the Flash/Flex IDE player from connecting to the gateway. Used for security to stop remote connections.
//$gateway->disableStandalonePlayer();
}
2、访问ByteArray对象出错,修改amfphp\core\amf\io\AMFSerializer.php如下内容:
function writeAmf3ByteArray($d)
{
$this->writeByte(0x0C);
//$this->writeAmf3String($d, true);
$this->writeAmf3ByteArrayBody($d);
}
另需要在写PHP代码时,将AMFPHP的AMF设置为AMF3,Flash设置无效的,代码为$GLOBALS['amfphp']['encoding'] = 'amf3';
或修改amfphp\core\shared\app\Globals.php内容中的$amfphp['encoding'] = "amf0";为$amfphp['encoding'] = "amf3";