Flash cs6 中的 ActionScript 代码错误问题



欢迎一些建议。这,是我在输出中的错误...ArgumentError: Error #2126: NetConnection对象必须在 flash.net::NetStream/ctor() 处连接 flash.net::NetStream() 处。它让我发疯!我一直在调整我的代码,但仍然无法弄清楚。以下是我的代码,我不会告诉你它太长了:如果你能确定我哪里出错了。

 var nc:NetConnection = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netHandler);
nc.connect("rtmfp://localhost/appName");
 function netHandler(event:NetStatusEvent):void{
    switch(event.info.code){
        case "NetConnection.Connect.Success":
        trace("connecting.....");
        break;
        case "NetConnection.Connect.Failed":
        trace("Unable to connect up");
        break;
        case "NetConnection.Connect.Rejected":
        trace("Whoops");
            break;
        }
}
var ns:NetStream = new NetStream(nc);
ns.publish("live", "recording");
var cam:Camera = Camera.getCamera();
cam.setMode(540, 320, 15);
cam.setQuality(0, 80);
ns.attachCamera(cam);
cam.addEventListener(StatusEvent.STATUS, statusHandler);
var vid:Video = new Video();
vid.width = cam.width;
vid.height = cam.height;
vid.attachCamera(cam);
var mic:Microphone = Microphone.getMicrophone();
mic.setSilenceLevel(0, 2000);
mic.framesPerPacket = 1;
mic.codec = SoundCodec.SPEEX;
mic.gain = 50;
ns.attachAudio(mic);

建立 netConnection 需要一些时间,但脚本在连接时不会停止,这就是您拥有 netHandler 函数的原因。

因此,您必须在触发netStatusEvent "NetConnection.Connect.Success"之后设置netStream。

你的 netHandler 函数应该看起来像这样:

function netHandler(event:NetStatusEvent):void{
    switch(event.info.code){
        case "NetConnection.Connect.Success":
        trace("connecting.....");
        setupNetStream();
        break;
        case "NetConnection.Connect.Failed":
        trace("Unable to connect up");
        break;
        case "NetConnection.Connect.Rejected":
        trace("Whoops");
        break;
    }
}
function setupNetStream():void {
    ns = new NetStream(nc);
    // ...
}

最新更新