ОБНОВЛЕНИЕ: Теперь я переместил объявление 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. Сообщение обновлено, см. Верх страницы.