0

我正在使用 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)"/>
4

1 回答 1

1

每次调用时,您都在创建一个新的 Video 对象startCamera。因此,您正在尝试删除实际上不在舞台上的视频。

代替:

video = new Video();

用这个:

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

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

于 2013-07-23T16:04:02.577 回答