2010-12-17 59 views
0

我在设置网络摄像机连接时遇到了很多问题。 我读过我应该使用一个类来进行连接,以便定义onBWDone()方法,并且我不会收到有关此方法的错误。Actionscript class“undefined property”errors

ActionScript类:

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); 
} 

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

回答

1

我看到的第一个问题是你的函数setConnection的返回类型为void(这意味着该函数不返回任何内容)。

public function setConnection():void 

应该

public function setConnection():NetStream 

然后AS3知道该物体从setConnection函数返回将是类型的NetStream的。

如果您粘贴了错误信息,这将非常有用。

getCamera是Camera类中的静态函数吗?很难知道发生了什么。

+0

哦,你是对的。现在我只出现一个错误:“1046:类型未找到或不是编译时常量:NetStream”。这是你提到的(“public function setConnection():NetStream”)。相机电话内置,我想?我没有一个自定义的类。 – user478419 2010-12-17 11:35:15

+0

你将不得不导入flash.net.NetStream – raRaRa 2010-12-17 11:41:59

0

i've answered almost the same question yesterday(你应该等待的NetConnection创建一个NetStream之前连接)
和BTW你nsscamera变量没有类型声明,var nss = wc.setConnection();意味着什么,只要setConnection()回报void

+0

对不起,我没有看到你昨天的答案。它看起来很有希望。相机的正确类型是什么? – user478419 2010-12-17 11:44:58

+0

@ user478419:'var camera:Camera' :)但我通常会做'myVid.attachCamera(Camera.getCamera());'' – www0z0k 2010-12-17 13:15:41