UPDATE:现在我已将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 borks。为了使事情变得更容易(?)和更可重用(?),我将所有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
P.S。发布更新,请参见页面顶部。
答案 0 :(得分:0)
首先,我更喜欢使用包含我的sql和params的php文件。但是嘿...... 你可能会得到这个错误的最明显的原因是我猜的网址是错误的。我相信standaard gateway.php是在没有大写字母G的情况下编写的,并不是在核心文件夹中而是在amfphp文件夹中。但是我再也不知道你改变了什么。
答案 1 :(得分:0)
您的_netConnection必须为null,并且在null引用上调用connect()方法,因此您将使用NullPointerException完成。告诉我们如何初始化_netConnnection:)。
答案 2 :(得分:0)
好的,我基本上重新制作了这个东西,几个小时后,它决定工作。我不确定怎么样,但是......呃。
感谢大家的帮助