必须连接 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);
希望能帮到你。
我是 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);
希望能帮到你。