您的位置: 首页 >> 新闻中心 >> 计算机 >> 设计制作
学会简单使用Flash 8 AS代码写摄像头拍照功能
■ 最新课程推荐更多课程>>
学校培训课程开课时间上课地点精英价报名
北 师 大 平面设计创意全科班电话预约北京师范大学¥1300
理工文化 平面设计取证班电话预约理工大学教学¥1078
金 同 方 CAD绘图全天班电话预约人大总部¥568
金 同 方 苹果平面设计全天班电话预约人大总部¥960
理工文化 平面设计提高班电话预约理工大学教学¥2891

  因为很久不做 Flash coding 了,所以也就很少关心 Flash 8 的新的 Class,但听大家说过有这个功能。本想从网上找段教程或 code 来做。可是发现国内还没有类似的。就只能自己动手丰衣足食了。

  开始做法:

  第一步:在库中建立一个视频元件,类型选择:视频(受 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 的区域有图像。并且图像变形了。 :eek:

  什么地方出了问题呢?@#$%^&* (此处省略2小时 debug 时间……)

  最后发现 my_video 复制到场景中调整大小时并不是改变 my_video.width 及 my_video.height 属性,而是改变 my_video._width 及 my_video._height 属性。原有视频元件的尺寸只有 160x120 。这就相当于将 my_video 作了形变。而 BitmapData.draw() 是不会考虑源元件的形变的。用官方的说法是:

  QUOTE:

  源 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了。 :mad:
那能不能通过改变 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 。阿哈 :cool:

本新闻共2页,当前在第1页  1  2

  影视动画培训   北大BEC培训官方报名网站   2008美国夏令营启航官方指定报名网站   2008留学第一站!  
  北师大 火星时代
共举影视动画培训之鼎
  北大BEC培训官方报名网站
现在报名独享95折!
  2008年国家职业资格考试
一次过关完全备考手册
  2008留学第一站
留学资讯尽在精英留学站!
 
上一篇:Flash实例:鼠标点选不同层次的层叠图片
下一篇:学会简单实用Flash的图片切换动画特效
 相关新闻
·实例体验:学会FreeHand MX的3D图形功能·疑难解答:Freehand常用特色功能疑难解答
·应用实例:Freehand“图形水管”工具玩图案播洒·应用:矢量绘图软件FreeHand 10 快捷键整理
·应用实例:Freehand 轻松绘制大红灯笼·简单应用:Freehand MX挤压工具做图案
·全新应用感受:FreeHand MX全新体验·全新体验:Freehand MX中文版新特性
·软件的应用实例:巧用FreeHand 设计荷花·应用实例:在Freehand中制作折叠艺术字
·应用实例:Freehand制作方格蒙板技巧·应用实例:Freehand 制作文字变形动画
·设计制作:Freehand制作螺旋移动的文字动画·实例制作捷径:巧用 Freehand 描绘花朵
·学会使用Flash简单绘制超酷水晶导航菜单·学会简单实用Flash的图片切换动画特效
 
◇ 重点栏目导航
◇ 精英服务承诺
教育顾问:010-51660910
QQ交流:138660910
相关资料
·用Photoshop制作逼真自然背景
·PhotoShop帮助Maya巧建模
·道字桌面的仿书法制造
·用Coreldraw绘制美丽国画荷花
·如何配色?无论新手老手,读下这篇文章相
·天使翅膀的制作
·Photoshop制作无缝贴图:Action动作集总
·photoshop学习方法总结
·学好平面设计的好方法
·[艺术设计专题]企业VI系统的简介和工作步
相关试题
·CEAC平面设计师考证之Photoshop考试试题
·你会吗 Adobe Photoshop 认证试题一
·武汉理工大学2003年艺术设计学院平面设计
·你会吗 Adobe Photoshop 认证试题三
·你会吗 Adobe Photoshop 认证试题二
相关热贴
·想学设计课啊,哪位帮我推荐一下~~
·制作个人简历九大标准
·给年轻设计师的十大忠告
·平面设计人员必读 (速读版)
·oracle下导出某用户所有表的方法
·计算机个人简历(英语)
·浅谈计算机课件制作
·一张图透彻讲解Photoshop蒙版
·Delphi中数据的自动录入
·Java与C和C++的比较