我正在使用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
将以相同的方式进行评估)