0

更新:现在我已将 AMFConnection var 声明移到 Main 中的函数之外,并注释掉了一些 trace() 命令,现在它给出了新的错误:

Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion
at AMFConnection/init()[/Users/Jan/Downloads/amfphp1/AMFConnection.as:32]
at AMFConnection()[/Users/Jan/Downloads/amfphp1/AMFConnection.as:23]
at Main/testConnection()[/Users/Jan/Downloads/amfphp1/Main.as:14]
at Main()[/Users/Jan/Downloads/amfphp1/Main.as:10]

所有这些本质上都指向 AMFConnection 的 NetConnection 初始化:(_netConnection = new NetConnection();其中 _netConnection 在类的开头声明)


我正在尝试连接到服务器上的 AMFPHP(使用 Flash AS3),当它到达 .connect() 阶段时,swf 会出现故障。为了使事情变得更容易(?)和更可重用(?),我将所有 NetConnection 机制放入一个单独的类 AMFConnection 中,我从 Main 文档类中调用它,如下所示(细节已更改):

public function testConnection(e:*=null):void {
var conn:AMFConnection = new AMFConnection();
conn.table = "some_table";
conn.selections = "*";
conn.conditionals = "WHERE something = 'something'";
conn.service = "QueryAMF";
conn.method = "makeQuery";
conn.displayText = txt;
conn.gogogo("http://www.someplace.com/Amfphp");
}

AMFConnection 实际上启动连接并使用函数 gogogo() 调用 AMFPHP 服务,而这里的 connect() NetConnection 函数将不起作用。这是 AMFConncection 类的主要部分

private var _netConnection:NetConnection;
private var _responder:Responder;

function AMFConnection()
{
init();
}

private function init(e:* = null)
{
_netConnection = new NetConnection();
_responder = new Responder(uponResult);
}

public function gogogo(url:String):void {
trace(url);
_netConnection.connect(url);
_netConnection.call(String(service+"/"+method), new Responder(onResult, null), table, selections, conditionals);
}

快速调试会话显示以下错误:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at AMFConnection/gogogo()[AMFConnection.as:44]
at Main/testConnection()[Main.as:20]
at Main()[Main.as:8]

其中:Main.as:20 = conn.gogogo(...)AMFConnection.as:44 = _netConnection.connect(url);

它也无法显示舞台,而是显示加载点。现在,最终我将把这个应用程序移动到与 AMFPHP 服务相同的服务器上,但即使我在那里使用相对 url 而不是绝对 URL 尝试它,它仍然会在 connect() 处崩溃。我尝试将发布设置从仅限本地更改为仅限网络,但无济于事。

有什么线索吗?知道本地连接到 AMFPHP 的更好方法吗?

提前干杯!JB

PS 帖子已更新,请参阅页面顶部。

4

3 回答 3

0

首先,我更喜欢使用包含我的 sql 和参数的 php 文件。但是,嘿...您可能会收到此错误的最明显原因是我猜的 url 错误。我相信标准的 gateway.php 是在没有大写 G. 的情况下编写的,它本身并不位于 core 文件夹中,而是位于 amfphp 文件夹中。但话又说回来,我不知道你改变了什么。

于 2011-12-08T22:18:07.497 回答
0

您的 _netConnection 必须为 null,并且您在 null 引用上调用 connect() 方法,因此您以 NullPointerException 结束。向我们展示您如何初始化 _netConnnection :)。

于 2011-12-09T01:32:28.950 回答
0

好的,我基本上重新制作了这个东西,几个小时后,它决定工作。我不知道怎么做,但是……嗯。

感谢你的帮助

于 2011-12-10T11:49:26.423 回答