текстовый чат Adobe Startus не работает @ настройка соединения - PullRequest
1 голос
/ 11 августа 2010

Здравствуйте, проблема, с которой я сталкиваюсь, это когда я пытаюсь вызвать функцию JavaScript.

Использование Jquery @

$("#flashtxtchat").get(0).startTxtChat()
  • ArgumentError: Ошибка № 2126:
    • Объект NetConnection должен быть
    • подключен. в
    • flash.net :: NetConnection / get nearID ()
    • в textchat / startChat () в
    • Функция / http://adobe.com/AS3/2006/builtin::apply()
    • в
    • flash.external :: ExternalInterface $ / _ Callin ()
    • at ()
    • Элемент списка
<![CDATA[
    import flash.events.*;
    import flash.external.*;
    import flash.net.*;
    import flash.system.*;

    import mx.containers.*;
    import mx.controls.*;
    import mx.core.*;
    import mx.events.*;
    import mx.styles.*;
    import mx.utils.*;

    private var netConnection:NetConnection;
    private var sendStream:NetStream;
    private var receiveStream:NetStream;
    private var strangerPeerID:String;

    public function init() : void
    {
        var url:* = FlexGlobals.topLevelApplication.url;
        var serverName:* = URLUtil.getServerName(url);
        if (!serverName.match(/(localhost|127.0.0.1)$/))
        {
            return;
        }
        ExternalInterface.addCallback("startTxtChat", this.startChat);
        ExternalInterface.addCallback("gotStrangerPeerID", this.gotStrangerPeerID);
        ExternalInterface.addCallback("sendMsg", this.sendMsg);
        ExternalInterface.addCallback("stopTxtChat", this.stopChat);
        ExternalInterface.call("flashtxtChat_init");
        return;
    }// end function

    public function startChat() : void
    {
        if (this.netConnection)
        {
            ExternalInterface.call("flashtxtChat_gotNearID", this.netConnection.nearID);
        }
        else
        {
            this.netConnection = new NetConnection();
            this.netConnection.addEventListener(NetStatusEvent.NET_STATUS, this.netConnectionHandler);
            this.netConnection.connect("rtmfp://stratus.rtmfp.net/removed-removed/");
        }
        return;
    }// end function

    public function gotStrangerPeerID(param1:String) : void
    {
        var _loc_3:NetStream = null;
        this.strangerPeerID = param1;
        var _loc_2:int = 0;
        while (_loc_2 < this.sendStream.peerStreams.length)
        {

            _loc_3 = this.sendStream.peerStreams[_loc_2];
            if (_loc_3.farID != this.strangerPeerID)
            {
                _loc_3.close();
            }
            _loc_2++;
        }
        this.receiveStream = new NetStream(this.netConnection, this.strangerPeerID);
        this.receiveStream.play("textchat");
        this.receiveStream.client = this;///temp added by me
        //this.strangerVideo.attachNetStream(this.receiveStream);
        return;
    }// end function

    public function sendMsg(msg: String) : void
    {
        sendStream.send("recvMsg", msg);
    }

    public function recvMsg(msg: String) : void
    {
        ExternalInterface.call("recvMsg", msg);
    }

    public function stopChat() : void
    {
        this.strangerPeerID = null;
        return;
    }// end function

    public function netConnectionHandler(event:NetStatusEvent) : void
    {
        var c:Object;
        var event:* = event;
        switch(event.info.code)
        {
            case "NetConnection.Connect.Success":
            {
                c = new Object();
                c.onPeerConnect = function (param1:NetStream) : Boolean
                {
                    if (strangerPeerID == null)
                    {
                        return true;
                    }
                    return param1.farID == strangerPeerID;
                };// end function
                this.sendStream = new NetStream(this.netConnection, NetStream.DIRECT_CONNECTIONS);
                this.sendStream.client = c;
                this.sendStream.publish("textchat");
                ExternalInterface.call("flashtxtChat_gotNearID", this.netConnection.nearID);
                break;
            }
            case "NetConnection.Connect.Failed":
            {
                this.netConnection = null;
                ExternalInterface.call("flashCb_errorConnectingToStratus");
                break;
            }
            case "NetConnection.Connect.Closed":
            {
                this.netConnection = null;
                this.sendStream.close();
                this.sendStream = null;
                if (this.receiveStream)
                {
                    this.receiveStream.close();
                    this.receiveStream = null;
                }
                break;
            }
            default:
            {
                break;
            }
        }
        return;
    }// end function
]]>
</mx:Script>

В чем может быть проблема? Спасибо, я использовал похожую реализацию для видеочата, которая работает безупречно. Я просто удалил все функции, связанные с видео, и оставил только в текстовом чате, теперь это не работает?

1 Ответ

0 голосов
/ 16 декабря 2010

проверить настройки плеера, которые они сбрасывают после обновления, разрешить локальный p2p

...