BitmapData类不能正常获取Video中的像素

在制作大头贴程序时,发现直接使用BitmapData类绘制Video对象的像素值时,虽然已经设定了Video的 _width_height 属性,BitmapData还是只能绘制160×120个像素。

后来发现,Video的实际像素值是和width与height属性相关。这两个属性都是只读属性,不能设置。它们的值来源于Camera。使用 Camera.setMode 可以设置这两个值。

但是,即使使用setMode设定了Camera的属性,BitmapData仍然只能绘制160×120像素!代码如下:

1import flash.display.BitmapData;
2var cam:Camera = Camera.get();
3var bmp:BitmapData = new BitmapData(200, 200, false);
4my_video.attachVideo(cam);
5test_btn.onPress = function() {
6cam.setMode(200, 200, 15);
7bmp.draw(my_video);
8my_mc.attachBitmap(bmp, 0);
9};

在这里可以看到效果(需要摄像头和Flash Player 8):

请使用下面的链接升级 Flash Player 到最新版本:

安装最新的Flash Player插件

怎么办?我的方法是使用一个影片剪辑包含Video对象。代码如下:

1import flash.display.BitmapData;
2var cam:Camera = Camera.get();
3var bmp:BitmapData = new BitmapData(200, 200, false);
4myVideo_mc.my_video.attachVideo(cam);
5test_btn.onPress = function() {
6cam.setMode(200, 200, 15);
7bmp.draw(myVideo_mc);
8my_mc.attachBitmap(bmp, 0);
9};

下面是效果:

请使用下面的链接升级 Flash Player 到最新版本:

安装最新的Flash Player插件

下载源文件:

1 文件