建网站 · 小游戏 · 祝福语 · 短信息 · 留学 · 社区 · 热点 · 博客 · 鲜花 · 毛尖 · 短信
网站建设 | 网站营销 | 设计学院 | 设计教程 | 财经资讯 | 七彩商务 | 医疗保健 | 动画欣赏 | 民俗文化 | 短信大全
关于我们 | 服务宗旨 | 网页教程 | 建站教程 | 推广教程 | 标志设计 | 企业建站 | 网站设计 | 网站推广 | 祝福短信
服务中心 网页设计 网站建设 建站知识 建站方案 网站诊断 网站改版 案例展示
七彩课堂
广告设计教程
程序开发教程
电脑维护教程
网页标准教程
平面设计教程
闪客动画教程
网站建设教程
网站推广教程
网页设计教程
网页制作教程
网站设计教程
网站运营教程
dreamweaver
课堂通道
01 02 03 04 05 06
07 08 09 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
>>>> 查看更多
   
七彩课堂[FLASH动画教程系列]
Flash 8 摄像头拍照
第一步:在库中建立一个视频元件,类型选择:视频(受 ActionScript 控制)。
第二步:将视频元件拖到场景中,并调整尺寸到想要的大小。并起名为“my_video”
第三步:在时间轴中粘入下边的 code :
var my_video:Video;
my_video._x=100;
my_video._y=40;
var my_cam:Camera = Camera.get();
my_cam.setMode(180, 140, 10, true);
my_video.attachVideo(my_cam);
shutter.onRelease = function() {
myBitmap = new flash.display.BitmapData(180, 240, true, 0);
myBitmap.draw(my_video);
var tempObj = _root.createEmptyMovieClip("photo", 100);
tempObj._x = 300;
tempObj._y = 40;
tempObj.attachBitmap(myBitmap, 1, "always", true);
};
Testing 发现有问题,拍出来照片只有 160x120 的区域有图像。并且图像变形了。
什么地方出了问题呢?
最后发现 my_video 复制到场景中调整大小时并不是改变 my_video.width 及 my_video.height 属性,而是改变 my_video._width 及 my_video._height 属性。原有视频元件的尺寸只有 160x120 。这就相当于将 my_video 作了形变。而 BitmapData.draw() 是不会考虑源元件的形变的。官方的说法是:源 MovieClip 对象不对此调用使用其任何舞台中转换。该源 MovieClip 对象会被视为存在于库或文件中,没有矩阵转换、没有颜色转换,也没有混合模式。如果您希望通过使用影片剪辑自身的 transform 属性来绘制影片剪辑,则可以使用它的 Transform 对象来传递各种 transformation 属性。
我开始没注意他给出的解决办法。我想既然 draw() 不考虑源元件的形变,那只能自己在输出的照片元件上想办法做形变了。于是有了下面这段 code :
var my_video:Video;
my_video._x=100;
my_video._y=40;
var my_cam:Camera = Camera.get();
my_cam.setMode(180, 140, 10, true);
my_video.attachVideo(my_cam);
shutter.onRelease = function() {
myBitmap = new flash.display.BitmapData(160, 120, true, 0);
myBitmap.draw(my_video);
var tempObj = _root.createEmptyMovieClip("photo", 100);
tempObj._x = 300;
tempObj._y = 40;
tempObj._width= 180;
tempObj._height = 240;
tempObj.attachBitmap(myBitmap, 1, "always", true);
};
这下照片是想要的大小了,而且图像也没有了变形。但发现图像没有摄像头显示的清晰。
想了一下,那是当然,draw() 不考虑源元件的形变,draw时my_video 被当作 160x120 来draw了。
那能不能通过改变 my_video.width 及 my_video.height 属性来改变 my_video 的尺寸而不是将 my_video 作形变呢?不能!!!my_video.width 及 my_video.height 属性是只读属性。
解决方法:
第一步:用视频编辑软件制作一个 180x240 尺寸的1贞的白色 mov 视频文件。
第二步:用 Macromedia Flash 8 Video Encoder 将mov视频文件转为 flv 视频文件。
第三步:在库中建立一个视频元件,类型选择:嵌入(与时间轴同步)。
第四步:将视频元件拖到场景中,并起名为“my_video”Testing 发现 my_video.width 及 my_video.height 属性为 180x120 。
第五步:在时间轴中粘入下边的 code :
var my_video:Video;
my_video.clear()
my_video._x=100;
my_video._y=40;
var my_cam:Camera = Camera.get();
my_cam.setMode(180, 140, 10, true);
my_video.attachVideo(my_cam);
shutter.onRelease = function() {
myBitmap = new flash.display.BitmapData(160, 120, true, 0);
myBitmap.draw(my_video);
var tempObj = _root.createEmptyMovieClip("photo", 100);
tempObj._x = 300;
tempObj._y = 40;
tempObj._width= 180;
tempObj._height = 240;
tempObj.attachBitmap(myBitmap, 1, "always", true);
};
好了,现在所有问题都解决了。
七彩课堂推荐教程
网页设计| 网站维护| 生日短信| 新年短信| 春节短信| 搜索营销| 谷歌百科| 客户留言| 人才招聘| 网站地图
七彩社区| 鲜花联盟| 传统节日| 问候短信| 新春祝福| 爱情短信| 情人短信| 纤体瘦身| 商务信息| 友情链接
2005 -2008© Copyright QicaiSpace.com All rights receand. [七彩空间专业做网站].
热线/MOB: 13396526989  电话/TEL: 0571 -- 63136250    E-mail: art01@163.com