3

我正在使用 ZendAMF 进行远程处理。

<?php
    error_reporting(E_ALL | E_STRICT); //error reporting, not needed

    require_once "Zend/Amf/Server.php"; //the zendAMF server
    require_once "process.php";  //our test class

    $server = new Zend_Amf_Server(); //declare the server

    $server->setClass("process"); //load our test-class to the server
    $server->setClassMap("Session", "Session");
    echo($server->handle()); // needed to start the server
?>

我的问题是我有一个 ActionScript 类会话和一个 PHP 类会话,但它仍然没有被映射。我有一些疑问...可能很傻...

PHP类的文件名是否应该与类名相同,因为它不是必需的,但是在映射时它带有一个值分数。

您将如何在 flex 应用程序中调用这些映射对象。我的方法如下所示,但不确定它是否正确。

$server->setClassMap("Session", "Session"); 这是上述函数中的一个 PHP 和 Flex 类。

我的 PHP 会话类也在包含目录中,我应该指出任何地方或 ZendAMf 会处理它。

弹性代码。

var userSession:Session = new Session();
sessionHold.text = userSession.userid; 

谢谢。

4

2 回答 2

4

您需要做一些不同的事情。通常它就像添加

[RemoteClass(alias="Session")]

到您的 AS 类的元数据或在 PHP 对象中使用 Zend_Amf 的函数之一,如 getASClassName()。查看 Wade Arnold(Zend_Amf 的作者)的截屏视频:类映射。我相信他会得到你的答案。

http://www.wadearnold.com/tutorials/zend/classmap/

于 2009-06-26T04:02:08.067 回答
0

TypeOneError 是正确的;你需要

[RemoteClass(alias="Session")]
[Bindable]

在 ActionScript 类的顶部。

我确定的其他一些事情可能会导致此问题:

  • 类变量必须是公共的并且具有相同的名称
  • ActionScript 类不应具有已定义的构造函数
于 2009-06-28T23:15:49.223 回答