Apache flex 前后摄像头之间的flex mobile切换

Apache flex 前后摄像头之间的flex mobile切换,apache-flex,mobile,camera,switching,Apache Flex,Mobile,Camera,Switching,我正在flex mobile上构建一个android视频应用程序,可以在前后摄像头之间切换。我编写了一个功能,可以在两个摄像头之间切换,但只切换一次,当我再次尝试按下按钮再次切换摄像头时,它不工作,并保留前摄像头。以下是我编写的代码: 受保护的功能更改摄像头(事件:MouseEvent):无效{ for(var i:int=0;i此代码中的逻辑有一个bug,您在设置摄影机后会不断迭代。因此它将始终设置数组中的最后一个摄影机。 缺少一条break指令,请检查以下更新的代码: protected f

我正在flex mobile上构建一个android视频应用程序,可以在前后摄像头之间切换。我编写了一个功能,可以在两个摄像头之间切换,但只切换一次,当我再次尝试按下按钮再次切换摄像头时,它不工作,并保留前摄像头。以下是我编写的代码:

受保护的功能更改摄像头(事件:MouseEvent):无效{


for(var i:int=0;i此代码中的逻辑有一个bug,您在设置摄影机后会不断迭代。因此它将始终设置数组中的最后一个摄影机。
缺少一条
break
指令,请检查以下更新的代码:

protected function changeCamera(event:MouseEvent):void{

    for(var i:int=0;i<Camera.names.length;i++){
       var compareCam:Camera;
       compareCam=Camera.getCamera(Camera.names[i]);
       if(compareCam.name!=camera.name){
          camera=Camera.getCamera(compareCam.name);
          video.attachCamera(camera);
          //stop the loop after set the camera.
          break;

        }

 }
受保护功能更改摄像头(事件:MouseEvent):无效{

对于(var i:int=0;iYou没有明确指定它;但我认为问题在于他在循环中更改了比较变量camera。我认为break语句确实可以解决它。@Reboog711这是正确的,但只有通过添加break指令才能解决问题,因为camera变量将保留最后一个值。@Reboog711也是如此如果设备具有3个或更多摄像头,则是一个中断逻辑。使用中断不是唯一的解决方案。您可以将当前摄像头名称保存在局部变量中;因此更改摄像头变量不会影响该条件。但是,是的,我同意这可能会在具有1个以上摄像头的设备上导致不希望的结果照相机。谢谢你的帮助,我添加了中断指令,现在可以工作了。
protected function changeCamera(event:MouseEvent):void{

    for(var i:int=0;i<Camera.names.length;i++){
       var compareCam:Camera;
       compareCam=Camera.getCamera(Camera.names[i]);
       if(compareCam.name!=camera.name){
          camera=Camera.getCamera(compareCam.name);
          video.attachCamera(camera);
          //stop the loop after set the camera.
          break;

        }

 }