用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   有意向写收费精品教程的朋友,请联系本站合作
当前位置 :首页>flash教程>Flash应用开发>列表

flash打造视频照相系列教程二

[来源:blogs uncool | 作者:uyang | 时间:2009-02-08 | 点击:  | 收藏本文  【 】]
5uflash文章摘要:       这部分,主要讲截图和TileList的应用。           拍照,拍照,当然要拍很多张,然后放在一起,让自己去挑一些好的,然后再保存到电脑上。        所以
点击在新窗口中浏览此图片
       这部分,主要讲截图和TileList的应用。
  
       拍照,拍照,当然要拍很多张,然后放在一起,让自己去挑一些好的,然后再保存到电脑上。
       所以,我们需要想个办法,把当前的样子拍下来,这就是截图。

       第一步:截图
       那怎么截图呢?也很简单,用BitmapData就可以搞定。首先在舞台上加个Button,实例命名为:btn,作为截图触发按钮。代码如下:
var cameraVideo:Video = new Video();
addChild(cameraVideo);
cameraVideo.width =320;
cameraVideo.height =240;

var myCamera:Camera=Camera.getCamera();
if (myCamera==null) {
  //trace("你还没安装视频头,或者视频头未连接");
} else {
  cameraVideo.attachCamera(myCamera);
  btn.addEventListener(MouseEvent.CLICK,beginSnap);
}
//main做为测试截图容器,只是测试用,下一步就不需要这个了。
var main:Sprite = new Sprite();
main.y=260;
addChild(main);

function beginSnap(event:MouseEvent):void {
  //trace(cameraVideo.width);
  var bitmapdata:BitmapData=new BitmapData(320,240);
  bitmapdata.draw(cameraVideo);
  var bitmap:Bitmap=new Bitmap(bitmapdata);
  main.addChild(bitmap);
}


      如果你测试成功的话,应该就是可以看到点击按钮后,截图自然会出现在下方,当然目前只是在测试,只是让你明白每一步的做法。
    
      

      完成截图后,我们需要停下来想一下。想象一下:我们拍了很多照片,然后把拍的无论是好的坏的,都扔到一个篮子里,然后我们再从里面挑选出好的,去打印成大照片。思路很清晰,那么我们需要做的,就是这个篮子问题。FLASH的魅力就是在这个篮子上的表现上,我们可以把照片横着排,竖着排,甚至是:一会儿排成人字形,一会儿排成大字形。我想这就是FLASH的乐趣,当然,这里我只说其中一种,最工业化的一种,直接放到FLASH自带的TileList组件上。

      第二步:感受下TileList组件

      如何使用TileList组件呢,其实帮助里说的很清楚,而且这里也非常详细的说明了使用方法,如果你愿意认真的看下,后面的教程就很简单了。不过我这里还是放一个比较贴近的小教程,这样下一步,我就不用解释的那么费劲了。

      新建一个FLA文件,然后在舞台上,随意画一个圆形,或者方形,然后选择按F8转化为实例,命名:mc,然后选择:Export for Actionscript,在Class里也命名为:mc,这样就方便在代码里调用这个图。

      好,接着从组件里把TileList组件拉到舞台,长度设置为400,其他暂时默认,命名为:lists。
      开始在新的时间轴上加代码:
    

var i:uint;
for(i=0;i<10;i++){
  var tempMc:Object= new Object();
  tempMc.label = "PIC"+i;
  tempMc.source = new mc();
  lists.addItem(tempMc);
}

  
      运行下看看,你所画的小图,有10张出现在这个组件上,而且有标签名字,别忘了Object我还可以加很多乱七八糟的自定义属性,比如toolTip这种,意思就是移动到图片上自动出现提示标签,这个都是题外话,你感觉一下上面的代码,应该对titleList组件有点感觉了吧。

       那么好,我们回到视频照相程序上,我们要做的就是把每次截图都放到这个LIST上,但是我们目前截图是320*240的,好象太大了吧,不过你不要担心,放在LIST上的话,一切都会以LIST定义的高宽为主,意思就是:你想让截图以多大的大小放在tileList上,是要在tileList组件上设置的。  
       那么怎么设置tileList呢,这个就简单了,点击下这个组件,然后按SHIFT+F7,就会出现组件检查器,随便你怎么设置。

       第三步:组装
       这步就是把说过的东西给组装起来,拍照,截图,把图放到tileList上。代码如下:
  

//只要加一句,然后修改beginSnap构造函数就可以
//先建立一个数组,用来放截图数据
var contents:Array = new Array();
function beginSnap(event:MouseEvent):void {
  var bitmapdata:BitmapData=new BitmapData(320,240);
  bitmapdata.draw(cameraVideo);
  var bitmap:Bitmap=new Bitmap(bitmapdata);
  addChild(bitmap);

  contents.push(bitmap);
  var i:uint;
  for (i=0; i<contents.length; i++) {
    var tempObj:Object = new Object();
    tempObj.source=contents[i];
    tempObj.label="image"+[i];
  }
               //lists就是tileList的实例名,我把里面的columnWidth设置为120;rowHeight设置为90
  lists.addItemAt(tempObj,0);
}

  
      运行下看看,基本没什么大的问题,当然那个标签比较麻烦,这个没关系,你要也好,不要也好,做法有很多。这只是基础。
文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:flash打造视频照相系列教程一
下一篇:flash打造视频照相系列教程三
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  教程分类
  基础操作   动画特效
  应用开发   组件学习
  As程序   动画教程
  Flash cs3   AS 3.0
  FCS/FMS教程   Loading教程
  Flash与Web   Flash教程连载
  Flash 3d
  相关文章
·Flash性能优化的一些细节
·关于游戏引擎PushButton的教程和
·关于游戏引擎PushButton的教程和
·关于游戏引擎PushButton的教程和
·Flash Player的“跑道/切片模型
·11款基于flash的等角(2.5D)引
·flash Undo/Redo的实现原理和方
·控制加载flash文件尺寸大小-uilo
·[flash疯狂破解加密系列三]内存
·[flash疯狂破解加密系列二]疯狂
  热门文章
·Flash进度条的制作详细讲解(组图)
·Flex 3 AdvancedDataGrid的使用(第二
·全Flash动画网站实现的基础教学
·FLV播放器汇总
·FLASH+XML相册(附源码)
·flash幻灯片网页效果
·超酷flash光晕移动效果
·Flash打造简单的飘雪动画视觉特效
·flash水影效果字
·flash春雷闪电效果
·Flash制作大雪纷飞效果动画
关于我们 - 免责声明 - 网站地图 - 商务服务 - 联系我们 - RSS地图
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号