我正在尝试使用AMF PHP将变量传递给flash文件,到目前为止我看不出我的代码有什么问题,但是我对创建类的经验很少,所以在这里,这是我的代码,< / p>
的index.php:
<?php
include "amfphp/services/flashMe.php";
$session = true;
if ($session == true) {
$uid = '12345';
$thing = new flashMe;
$thing->push($uid);
} else {
//login
}
?>
flashMe.php:
<?php
class flashMe {
public function __construct() {
}
public function push($one)
{
return $one;//sends the uid to the flash file?
}
}
?>
Flash正在寻找flashMe类和该类中的push方法,但是当我运行它时,我的flash文件中仍然存在空变量,这段代码有问题吗?
提前Thanx!
答案 0 :(得分:2)
您的index.php文件是不必要的。
您的第二个文件不完整。以下是他们的“hello world”类文件的文档示例:
<?php
class HelloWorld
{
function HelloWorld()
{
$this->methodTable = array
(
"say" => array
(
"access" => "remote",
"description" => "Pings back a message"
)
);
}
function say($sMessage)
{
return 'You said: ' . $sMessage;
}
}
?>
此文件应保存为“HelloWorld”,以匹配您在php文件中命名的“类HelloWorld”(您使用FlashMe执行此部分)。
Flash片段文档中的示例文件(在actionscript中)位于:
import mx.remoting.*;
import mx.rpc.*;
import mx.remoting.debug.NetDebug;
var gatewayUrl:String = "http://localhost/flashservices/gateway.php"
NetDebug.initialize();
var _service:Service = new Service(gatewayUrl, null, 'HelloWorld', null , null);
var pc:PendingCall = _service.say("Hello world!");
pc.responder = new RelayResponder(this, "handleResult", "handleError");
function handleResult(re:ResultEvent)
{
trace('The result is: ' + re.result);
}
function handleError(fe:FaultEvent)
{
trace('There has been an error');
}
网关网址应该转到您的服务可以到达的任何地方。我敢肯定,如果你尝试一些,你会找到合适的。 amfphp的优点在于,它允许您在尝试在网关中实现服务之前测试服务(如果您在浏览器中访问URL)。
我对AMFPHP也很陌生,但我发现the docs非常有用。如果您需要有关课程的更多帮助,可以在PHP docs page上找到更多信息。
答案 1 :(得分:0)
您在new flashMe
$thing = new flashMe();
$thing->push($uid);
答案 2 :(得分:0)
Amfphp或Zend AMF仅允许您在网关公开的远程类上调用公共方法。您的示例不是类,因此无法调用远程方法。这看起来更像是你用http帖子做的事情。