必须连接 AS3 NetConnection 对象

AS3 NetConnection object must be connected

我是 AS3 初学者,正在制作游戏原型,我试图在其中添加视频,但遇到了这个问题。

ArgumentError: Error #2126: NetConnection object must be connected.
at flash.net::NetStream/ctor()
at flash.net::NetStream()
at Main()[/Users/admin/Desktop/Prototype 4/Main.as:27]
at runtime::ContentPlayer/loadInitialContent()
at runtime::ContentPlayer/playRawContent()
at runtime::ContentPlayer/playContent()
at runtime::AppRunner/run()
at ADLAppEntry/run()
at global/runtime::ADLEntry()

我用谷歌搜索了它,但仍然不明白这个问题。 这是我的代码。

package  {

import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;

import flash.display.MovieClip;
import flashx.textLayout.events.ModelChange;

public class Main extends Sprite 
{
    public var mc:Sprite = new Sprite();
    public var touch:MovieClip = new Touch();
    public var yellowbox:MovieClip = new Yellow();

    public var purplebox:MovieClip = new Purple();
    public var pinkbox:MovieClip = new Pink();
    public var Next:MovieClip = new NEXT();
    public var myTimer:Timer = new Timer (2000, 1);
    public var vid:Video = new Video(700, 360);

    public var nc:NetConnection = new NetConnection();
    public var ns:NetStream = new NetStream(nc);

    public function Main() 
    {
        // constructor code
        addChild(mc);
        mc.addChild(yellowbox);
        yellowbox.addChild(touch);
        touch.y = 1000;
        touch.x = 50;

        vid.y = 300;
        vid.x = 10;

        yellowbox.addEventListener (MouseEvent.CLICK, onClick);
        myTimer.addEventListener(TimerEvent.TIMER, tick);

        nc.connect(null);
        vid.attachNetStream(ns);

        var listener:Object = new Object();
        listener.onMetaData = function(evt:Object):void {};
        ns.client = listener;

    }

    public function onClick (e:MouseEvent):void
    {
        mc.removeChild(yellowbox);
        mc.addChild(purplebox);
        purplebox.addChild(vid);
        ns.play("rick.mp4");
        myTimer.start();
    }

    function tick(e:TimerEvent):void 
    {
        purplebox.addChild(Next);
        Next.y = 1000;
        Next.x = 330;

    }

}

}

有人可以向我解释一下这是什么问题吗? 谢谢!

简单地说,您无法创建未连接的 NetStream using a NetConnection

为避免该错误,您应该连接 NetConnection,然后像这样创建 NetStream

var nc:NetConnection,
    ns:NetStream;

nc = new NetConnection();
trace(nc.connected);    // gives : false
nc.connect(null);
trace(nc.connected)     // gives : true

ns = new NetStream(nc);

希望能帮到你。