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 はクラスの先頭で宣言されています)。


サーバー (Flash AS3 を使用) で AMFPHP に接続しようとしていますが、swf が .connect() 段階に達すると中断します。物事をより簡単に (?) 再利用可能に (?) するために、すべての 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

_netConnectionはnullである必要があり、null参照でconnect()メソッドを呼び出すため、NullPointerExceptionで終了します。_netConnnectionを初期化する方法を教えてください:)。

于 2011-12-09T01:32:28.950 に答える
0

わかりました、私は基本的に物事を作り直しました、そして数時間後、それはうまくいくことに決めました. 方法はわかりませんが...ええと。

ご協力ありがとうございます

于 2011-12-10T11:49:26.423 に答える