Actionscript 3 如何在移动项目中使用Flex 4.5.1捕获图像?

Actionscript 3 如何在移动项目中使用Flex 4.5.1捕获图像?,actionscript-3,apache-flex,flexbuilder,Actionscript 3,Apache Flex,Flexbuilder,我是Flex和ActionScript编程的新手,并尽可能快地学习。我尝试了一些示例应用程序。现在我正试图通过电脑附带的网络摄像头使用ActionScript捕捉图像 我已经写了以下代码 protectedvar myCam:CameraUI; 受保护的函数view1\u viewActivateHandler(事件:ViewNavigatorEvent):无效 { 如果(CameraUI.Isupported){ currentState=“正常”; myCam=新摄像机(); myCam.

我是Flex和ActionScript编程的新手,并尽可能快地学习。我尝试了一些示例应用程序。现在我正试图通过电脑附带的网络摄像头使用ActionScript捕捉图像

我已经写了以下代码

protectedvar myCam:CameraUI;
受保护的函数view1\u viewActivateHandler(事件:ViewNavigatorEvent):无效
{
如果(CameraUI.Isupported){
currentState=“正常”;
myCam=新摄像机();
myCam.addEventListener(MediaEvent.COMPLETE、onComplete);
}
else currentState=“不支持”;
}
受保护的函数btnPic_clickHandler(事件:MouseeEvent):无效
{
img.filters=[];
myCam.launch(MediaType.IMAGE);
}
受保护的函数onComplete(evt:MediaEvent):无效
{
img.source=evt.data.file.url;
}
受保护的函数applyFilter():void
{
if(img.filters.length==0)
{
变量矩阵数组:数组=[.33,33,33,0,0,
.33,.33,.33,0,0,
.33,.33,.33,0,0,
0,0,0,1,0];
var blackWhiteFilter:ColorMatrixFilter=新的ColorMatrixFilter(matrixArray);
img.filters=[blackWhiteFilter];
btnBW.label=“颜色”;
}
其他的
{
img.filters=[];
btnBW.label=“B/W过滤器”;
}
}
]]>

但是摄像机没有被检测到。。currentsState始终不受支持。。。有什么不对劲吗

使用FlexMobileProject为移动设备捕获图像/视频还有其他方法吗

任何与Flex Mobile开发相关的博客/教程都将提供gr8帮助。感谢…

来自以下文档: “使用Camera类从客户端系统或设备摄像头捕获视频。使用video类在本地监视视频。”

你应该读的第一件事是关于

那就去看看吧

文档中的示例:

    package {
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.*;
        import flash.media.Camera;
        import flash.media.Video;

public class CameraExample extends Sprite {
    private var video:Video;

    public function CameraExample() {
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;

        var camera:Camera = Camera.getCamera();

        if (camera != null) {
            camera.addEventListener(ActivityEvent.ACTIVITY, activityHandler);
            video = new Video(camera.width * 2, camera.height * 2);
            video.attachCamera(camera);
            addChild(video);
        } else {
            trace("You need a camera.");
        }
    }

    private function activityHandler(event:ActivityEvent):void {
        trace("activityHandler: " + event);
    }
}
}

看看你是否能让这一点发挥作用,然后问另一个关于过滤图片并保存它的问题

谢谢@SQLiteNoob,我已经尝试了上面的代码,但不幸的是,我在
var-camera:camera=camera.getCamera()处出错,getCamera()返回null。在我为项目提供了摄像头权限时,代码开始工作。
    package {
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.*;
        import flash.media.Camera;
        import flash.media.Video;

public class CameraExample extends Sprite {
    private var video:Video;

    public function CameraExample() {
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;

        var camera:Camera = Camera.getCamera();

        if (camera != null) {
            camera.addEventListener(ActivityEvent.ACTIVITY, activityHandler);
            video = new Video(camera.width * 2, camera.height * 2);
            video.attachCamera(camera);
            addChild(video);
        } else {
            trace("You need a camera.");
        }
    }

    private function activityHandler(event:ActivityEvent):void {
        trace("activityHandler: " + event);
    }
}
}