我在设置网络摄像头连接时遇到很多问题。 我读到我应该使用一个类进行连接,以便定义onBWDone()方法,并且我没有得到关于此方法的错误。
动作脚类:
package cam {
public class WebcamSetup {
public var appURL:String;
public function setConnection():NetStream
{
nc:NetConnection = new NetConnection();
nc.client = this;
nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
nc.connect(appURL);
ns:NetStream = new NetStream(nc);
return ns;
}
public function onBWDone():void{
}
}
}
在flash文件中,我这样做:
import cam.WebcamSetup;
var wc:WebcamSetup = new WebcamSetup();
wc.appURL = "rtmp://xxxxx";
var nss:NetStream = wc.setConnection();
var camera = Camera.getCamera();
if (camera != null){
myVid.attachCamera(camera);
nss.attachCamera(camera);
}
我收到了“未定义的方法”和“未定义的属性”错误。 我不能这样做吗?我收到错误“返回值必须未定义”。
答案 0 :(得分:1)
我看到的第一个问题是你的函数setConnection的返回类型为void(这意味着函数不返回任何内容)。
public function setConnection():void
应该是
public function setConnection():NetStream
然后AS3知道从setConnection函数返回的对象将是NetStream类型。
如果你粘贴了你得到的错误会很有用。
getCamera是Camera类中的静态函数吗?很难知道发生了什么。
答案 1 :(得分:0)
i've answered almost the same question yesterday(您应该在创建NetStream之前等待NetConnection连接)
btw您的nss
和camera
变量没有类型声明和var nss = wc.setConnection();
只要setConnection()
返回void