2012-01-26 2 views
0

У меня есть код, который делает звонок по моему main.acs, а затем передает сообщение всем пользователям. Когда я передаю свое сообщение всем пользователям, функция bcStopStreaming никогда не будет вызвана.AS3 Обратный звонок с сервера не работает

Server Side Код:

application.onConnect = function(client) { 
    application.acceptConnection(client); 

    client.stopStreaming = function() { 
     trace("#stopStreaming# called"); 
     application.broadcastMsg("bcStopStreaming"); 
    } 

    client.startStreaming = function() { 
     trace("#startStreaming# called"); 
     application.broadcastMsg("bcStreaming"); 
    } 
} 

Connect Кнопка:

public function btnConnectHandler(event:MouseEvent):void 
{ 
    nc = new NetConnection(); 
    nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 

    nc.connect("rtmp://"+hostName+"/test"); 
    nc.client = new Object(); 

    nc.client.bcStreaming = function(){ 
     trace("Started Streaming"); 
    }; 

    nc.client.bcStopStreaming = function(){ 
     trace("Stopped Streaming"); 
    }; 
} 

Кнопка Disconnect:

public function btnDisconnectHandler(event:MouseEvent):void { 
    nc.call("stopStreaming", null); 
    nc.close(); 
} 

Я получаю ошибку:

Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.NetConnection was unable to invoke callback bcStreaming. error=ReferenceError: Error #1069: Property bcStreaming not found on test and there is no default value. 
at test/btnConnectHandler() 

ответ

1

Ваш клиент настроен неправильно.
И прекратите использовать встроенные функции.

public function btnConnectHandler(event:MouseEvent):void{ 
    nc = new NetConnection(); 
    nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 

    nc.connect("rtmp://"+hostName+"/test"); 
    var myClient = new Object() 

    myClient.bcStreaming = this.bcStreaming; 
    myClient.bcStopStreaming = this.bcStopStreaming; 
    nc.client = myClient; 
} 
public function bcStreaming(){ 
    trace("Started Streaming"); 
} 

public function bcStopStreaming(){ 
    trace("Stopped Streaming"); 
} 

nc.client