如何在as3中停止相机捕获,flex



我正在使用flashbuilder开始flex的工作,我正在测试相机。现在我可以让相机显示,但当我尝试使用停止按钮停止相机拍摄时,ti不起作用——这就是我尝试的。

    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)"/>

每次调用startCamera时都会创建一个新的视频对象。所以你试图删除一个实际上不在舞台上的视频。

代替:

video = new Video();

使用此:

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

这只会在尚未创建视频对象的情况下创建视频对象(!object评估对象以查看其是否为null或布尔值设置为false。在这种情况下,object == null将以相同的方式进行评估)

最新更新