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

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

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

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

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

您的浏览器不支持JavaScript,或者您禁用了JavaScript。

请启用浏览器的JavaScript支持。

如果您确认启用了JavaScript,请使用下面的链接升级Flash Player到最新版本:

安装最新的Flash Player插件

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

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

下面是效果:

您的浏览器不支持JavaScript,或者您禁用了JavaScript。

请启用浏览器的JavaScript支持。

如果您确认启用了JavaScript,请使用下面的链接升级Flash Player到最新版本:

安装最新的Flash Player插件

下载源文件:

留言