导出到AIR时,AS3 Camera输入会失真

时间:2012-05-18 16:22:40

标签: actionscript-3 flash air webcam

我使用flash / as3构建了一个AIR应用程序,在舞台上显示了一个网络摄像头。在构建应用程序时,在我的所有测试中,所有内容看起来和工作都很花哨,但是当我为AIR发布时,图像会被拉伸。图像的边界似乎保持不变,但实际的凸轮输出是扭曲的。有没有人以前遇到过这个问题?

我应该补充一点,这是一个桌面应用程序,它永久安装在一台计算机上,因此设备兼容性应该不是问题。

这是相机设置:

    var cam:Camera = Camera.getCamera();
    cam.setMode(280,380,20);
    var video:Video = new Video(380,380);

这是我第一次打电话给相机......

    video.attachCamera(cam);
    video.x = 355;
    video.scaleX = -1;
    video.y = -100;
    addChildAt(video, 0);
奇怪尺寸的原因在于它位于框架后面,在整个交互式中改变位置。

2 个答案:

答案 0 :(得分:2)

不一定是您正在寻找的答案,但您应该牢记这一点:

您要求相机以280 x 380的分辨率进行拍摄,这不是标准的4:3宽高比。

当您致电cam.setMode(280,380,20);时,文档会说Flash会尝试将相机分辨率设置为您的规格,如果相机不支持该分辨率,它会尝试找到匹配的分辨率。所以你可能会或可能不会得到这个实际的解决方案。

setMode()有第四个参数,可以禁用此功能。阅读docs,了解其含义:)

然后在视频对象380x380中显示视频。所以我希望图像在水平方向上拉伸(b / c原始来源只有280)。

目前尚不清楚为什么这种行为会有所不同:您是说运行应用程序的调试版本有效,但是当您导出发布版本并运行它看起来很时髦时?​​

最后,scaleX = -1在做什么?我记得这是我过去使用的某种狡猾的技巧......但这里的目的是逃避我:)

答案 1 :(得分:-1)

是的,源代码很酷。顺便说一句,我建议你,一旦你开始播放视频流,就手动设置video.width和video.height属性。 这将强制凸轮以正确的尺寸显示。