При попытке подключиться к AMFPHP - NetConnection.connect () возвращает ошибку типа: ошибка # 1009 - PullRequest
0 голосов
/ 09 декабря 2011

ОБНОВЛЕНИЕ: Теперь я переместил объявление var AMFConnection за пределы функций в 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), и файл swf не работает, когда он достигает этапа .connect (). Чтобы упростить (?) И использовать повторно (?), Я поместил всю механику NetConnection в отдельный класс, AMFConnection, который я вызываю из класса основного документа следующим образом (подробности изменены):

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 фактически запускает соединение и вызывает сервис AMFPHP с функцией gogogo (), и здесь функция 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-адресом, а не с абсолютным, оно все равно не работает при connect (). Я попытался изменить настройки публикации с локальных только на сетевые, но безрезультатно.

Есть какие-нибудь подсказки? Знаете лучший способ подключения к AMFPHP локально?

Ура заранее! JB

P.S. Сообщение обновлено, см. Верх страницы.

Ответы [ 3 ]

0 голосов
/ 09 декабря 2011

Ваше _netConnection должно быть нулевым, и вы вызываете метод connect () для нулевой ссылки, поэтому вы заканчиваете с NullPointerException. Покажите нам, как вы инициализируете _netConnnection:).

0 голосов
/ 10 декабря 2011

Хорошо, я в основном переделал эту вещь, и через пару часов она решила работать. Я не уверен как, но ... эх.

Спасибо всем за помощь

0 голосов
/ 09 декабря 2011

Во-первых, я предпочитаю использовать php-файл, который содержит мои sql и params.но эй ... Самой очевидной причиной, по которой вы могли бы получить эту ошибку, была бы ошибка в URL, я думаю.Я полагаю, что стандартный gateway.php написан без заглавной буквы G. Он располагается не в основной папке, а в папке amfphp.но опять же, я не знаю, что вы изменили.

...