2013-07-23 19 views
0

我开始使用flashbuilder在flex上工作,并且正在测试相机。现在我可以得到一个相机来显示,但是当我尝试使用停止按钮来停止相机捕捉时,ti不起作用,这是我尝试过的。如何在as3,flex中停止摄像头捕获?

var video:Video; 
    public function startCamera(muteCam:Boolean=false):void{ 
     video = new Video(); // this will work after the import is done 

     var camera:Camera=Camera.getCamera(); 
     if(muteCam){ 
     video.attachCamera(camera); 

     vidHolder.addChild(video); 
     }else{ 
      video.attachCamera(null); 
      if(contains(video)) 
      vidHolder.removeChild(video); 
      //camera=null; 

     } 


    } 

这些都是我的部件

<s:Button x="116" y="28" label="Start" click="startCamera(true)"/> 
    <s:VideoDisplay id="vidHolder" x="31" y="87" width="200" height="300" 
        /> 
    <s:Button id="stop" x="208" y="28" label="Stop" click="startCamera(false)"/> 

回答

1

您正在创建一个新的Video对象调用startCamera每一次。所以你试图删除一个不在舞台上的视频。

相反的:

video = new Video(); 

使用此:

if (!video) { 
    video = new Video(); 
} 

如果尚未创建它这只会创建Video对象(!object评估对象,看它是否为空或一个布尔值设置为false object == null将在这种情况下评估相同的方式)

+0

完美的男人。是的,这是问题。 –