Actionscript类“未定义属性”错误

时间:2010-12-17 11:20:06

标签: flash actionscript

我在设置网络摄像头连接时遇到很多问题。 我读到我应该使用一个类进行连接,以便定义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);
}

我收到了“未定义的方法”和“未定义的属性”错误。 我不能这样做吗?我收到错误“返回值必须未定义”。

2 个答案:

答案 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您的nsscamera变量没有类型声明和var nss = wc.setConnection();只要setConnection()返回void

,就没有任何意义