2010-12-17 81 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

相關問題