AS3 LocalConnection Ошибки - PullRequest
       26

AS3 LocalConnection Ошибки

1 голос
/ 26 июля 2011

Не знаю, где я иду не так, сейчас просто пробую это на месте. Спасибо.

sendLC.swf возвращает, LocalConnection.send () успешно

Это ошибки, которые я получаю от Flash. Ошибка № 2044: необработанный AsyncErrorEvent :. text = Ошибка № 2095: flash.net.LocalConnection не удалось вызвать обратный вызов myMethod. error = ReferenceError: Ошибка # 1069: свойство myMethod не найдено на flash.net.LocalConnection и значение по умолчанию отсутствует.

Код для отправкиLC.swf:

import flash.net.LocalConnection

var sendingLC:LocalConnection;
sendingLC = new LocalConnection();
sendingLC.allowDomain('*');
Security.allowDomain("*");
sendBtn.addEventListener(MouseEvent.CLICK, sendIt);

function sendIt(eventObj:MouseEvent):void {
    sendingLC.send('myConnection', 'myMethod');
}

sendingLC.addEventListener(StatusEvent.STATUS, statusHandler);


function statusHandler (event:StatusEvent):void
{
    switch (event.level)
    {
        case "status" :
            textArea.text = ("LocalConnection.send() succeeded");
            break;
        case "error" :
            textArea.text = ("LocalConnection.send() failed");
            break;
    }
}

Код для полученияLC.swf:

import flash.net.LocalConnection

var receivingLC:LocalConnection;
receivingLC = new LocalConnection();
receivingLC.allowDomain('*');
Security.allowDomain("*");
receivingLC.connect('myConnection');

function myMethod():void {trace('Hello World')}

Ответы [ 3 ]

2 голосов
/ 12 марта 2012

У меня также были проблемы с LocalConnection, приводящим к ошибкам обратного вызова, но он прекратился, когда я добавил свойство client в соединение.Потом все заработало даже во флеш IDE.

var conn:LocalConnection;
conn = new LocalConnection();
conn.allowDomain('*');
conn.client = this;
conn.connect('localThingieConnector');
0 голосов
/ 26 июля 2011

Может быть проблема с установлением соединения в приемнике.

try {
  var receivingLC:LocalConnection;
  receivingLC = new LocalConnection();
  receivingLC.allowDomain('*');
  Security.allowDomain("*"); // not sure this line is needed
  receivingLC.connect('myConnection');
} catch (error:ArgumentError) {
  trace('failure to make connection ' + error.toString() );
}

Также стоит отметить, что не проверяйте LocalConnections во флэш-API, делайте это через браузер, когда вы впервые делаете это, поскольку проблемы с разрешениями могут быть капризной женщиной.

0 голосов
/ 26 июля 2011

Возможно, попробуйте сделать myMethod общедоступным, например, так:

public function myMethod():void{
  trace("hello world");
}

Также вы должны попробовать / перехватить вызов для отправки, чтобы вы получили больше информации об ошибках, таких как:

try{
  sendingLC.send('myConnection', 'myMethod');
}
catch(e:Error){
  trace(e.toString());
}
...