0

AMF PHP を使用して変数をフラッシュ ファイルに渡そうとしていますが、これまでのところコードに問題は見られませんが、クラスを作成した経験はほとんどありません。

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 メソッドを探していますが、フラッシュ ファイルを実行すると null 変数が取得され続けます。このコードに何か問題がありますか?

事前にサンクス!

4

3 に答える 3

2

index.php ファイルは不要です。

2 番目のファイルは不完全です。「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;
    }
}
?>

このファイルは、php ファイルで指定した「クラス HelloWorld」に一致する「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');
}

ゲートウェイ URL は、サービスに到達できる場所に移動する必要があります。いくつか試してみると、きっとぴったりのものが見つかると思います。amfphp の優れた点は、サービスをゲートウェイに実装する前に (ブラウザーで URL にアクセスした場合)、サービスをテストできることです。

私も AMFPHP にはかなり慣れていませんが、ドキュメントが非常に役立つことがわかりました。クラスについてさらにヘルプが必要な場合は、PHP ドキュメント ページで詳細情報を見つけることができます。

于 2010-07-19T19:39:17.583 に答える
0

Amfphp または Zend AMF では、ゲートウェイによって公開されているリモート クラスのパブリック メソッドのみを呼び出すことができます。あなたの例はクラスではないため、リモートメソッドを呼び出すことはできません。これは、http 投稿で行うようなものに似ています。

http://framework.zend.com/manual/en/zend.amf.server.html

于 2010-07-12T02:06:19.540 に答える
0

あなたは括弧を逃したnew flashMe

$thing = new flashMe(); $thing->push($uid);

于 2010-07-09T14:09:24.673 に答える