Flash 8 Professional Copy Pixels位图象素复制

2016-01-29 13:57 5 1 收藏

Flash 8 Professional Copy Pixels位图象素复制,Flash 8 Professional Copy Pixels位图象素复制

【 tulaoshi.com - Flash 】

  除了 8 中自带的各种简单Filter滤镜效果之外,还对bitmapData位图对象提供了非常强大的象素操作。当然,有了象素级的操作,最直接的用途就是我们可以直接控制位图中的每个点,改变他的颜色、位置,能直接创造属于自己的丰富的滤镜,当然,前途是美好的,一定要注意执行效率,虽然Flash Player8的效率已经大为提高,不过我还是在试验各种象素操作中误入超大运算而死机……。

  今天的例子是最为简单的一个得到象素并复制到一个新对象中的操作,不过有了这个功能,位图操作的可能性就无限量了。

  Flash代码:

  import flash.display.*;

  import flash.geom.*;

  //导入本例所需要的二个Pageage

  var sourceBD:BitmapData = BitmapData.loadBitmap(”mypic”);

  //创建bitmapData对象以用于存放源图片,源图已在库中并命名为mypic

  var mc:MovieClip = this.createEmptyMovieClip(”mc”, this.getNextHighestDepth());

  mc._x = 25;

  mc._y = 100;

  mc.attachBitmap(sourceBD,mc.getNextHighestDepth());

  //在Stage上创建空MC,并使用MC的attachBitmap方法将刚才创建的bitmapData对象读取到这个MC中

  var targetBD:BitmapData = new BitmapData(230, 230, false, 111111);

  //创建另一个bitmapData对象作为复制目标

  var mc2:MovieClip = this.createEmptyMovieClip(”mc”, this.getNextHighestDepth());

  mc2._x = 290;

  mc2._y = 100;

  mc2.attachBitmap(targetBD,mc.getNextHighestDepth());

  //同样在Stage上创建空MC用于存放复制目标

  mc.onRollOver = function() {

  //当鼠标移动到拥有源图的MC上时,开始CopyPixels

  copyPixels();

  };

  mc.onRollOut = function() {

  //移出状态停止Copy

  stopcopyPixels();

  };

  //Copy Pixels Function

  function copyPixels() {

  this.onMouseMove = function() {

  setCursor();//设置鼠标光标

  var point:Point = new Point(_xmouse, _ymouse);

  mc.globalToLocal(point);

  //得到当前鼠标座位,并使用globalToLocal转换为MC内部的坐标值

  var rect:Rectangle = new Rectangle(point.x, point.y, 20, 20);

  /*创建一个Rectangle对象用以确定要复制的矩形区域

  Rectangle对象是Flash8中新增对象,包的位置在flash.geom.Rectangle,flash.geom对象除了拥有Rectangle矩形数据对象之外,还有其它用于存放几何数据的对象类型,包括Point,Tranform等

  Rectangle的构造方式为

  public Rectangle(x:Number, y:Number, width:Number, height:Number)

    

[next]

  x,y:起始座位

  width,height:矩形的宽和高,最终将建立一个从 x,y到 x+width,y+height的矩形区域数据

  */

  var dest:Point = new Point(point.x, point.y);

  //建立dest对象用于存放目标点

  targetBD.copyPixels(sourceBD,rect,dest);

  /*这里就是本例操作的关键方法,copyPixels,用于将源图中的某个区域的象素复制到当前对象中

  构造方式为public copyPixels(sourceBitmap:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmap:BitmapData, alphaPoint:Point, mergeAlpha:Boolean)

  sourceBitmap:需要复制的源图,为BitmapData对象类型,这里就套用为前面建立的sourceBD

  sourceRect:复制区域

  deskPoint:目标点,明确将区域复制到本对象的哪一个位置,本例中完全还原源图的象素所在位置

  以下几个参数在本例中都没有使用到

  alphaBitmap和alphaPoint:表示可以通过另一个图片用于在复制的时候对源图产生一个alpha通道来创建带alpha通道效果的复制结果.

  mergeAlpha的属性是指是否启用源图的alpha通图,但目前没有调试出具体效果,有待再研究.*/

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

  };

  }

  function stopcopyPixels() {

  //停止copyPixels

  clearCursor();

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

  delete this.onMouseMove;

  }

  function setCursor() {

来源:http://www.tulaoshi.com/n/20160129/1492080.html

延伸阅读
标签: 电脑入门
普遍复制文字在Word到其他地方不时是最常用的命令, CTRL + C复制命令,然后使用Ctrl + V将其粘贴到该部复制到的目标。该解决方案可复制的文本具有普遍性,但有一点麻烦整个一天按Ctrl + C ,然后按Ctrl +V。 事实上,隐藏在Word中更简单,更好地利用命令复制案文,但它并不是很难找到这个词的球迷隐藏在小的特点。 我喜欢与你分享以下的文...
标签: FLASH flash教程
本文由 txwh2006(踏雪无痕) 原创,转载请保留此信息!      刚接触FLASH时,一直想掌握位图形状渐变的技巧,一些高手支招:只有用淡入淡出来替代形状渐变。但毕竟不理想。其实FLASH并没有这样的功能。看来只能借助于第三方软件来实现我们的愿望。先对比一下两种效果: 1、未使用第三方软件的位图形状渐变的效果: ...
下载本文的实例源文件 1.对象的绘制 在以前版本的Flash中,如果我们使用绘图工具绘制两个重叠但不互相结合到一起的对象时,需要分别将两个对象转换为元件,或者单独放在两个图层中才可以实现,否则两个对象会重叠联合在一起,这样的操作相对来说比较麻烦。如图1所示。 图1 在Flash8中,增加了对象绘制功能,...
标签: flash教程
第 4 章: 函数---函数的基本概念 终于写完了数据类型和条件以及循环语句部分, 现在可以讲讲函数了. 函数是在程序中可以重复使用的代码. 你可以将需要处理的值或对象通过参数的形式传递给函数, 然后由函数得到结果. 从另一个角度说, 函数存在目的就是为了简化编程的负担, 减小代码量和提高效率. 而一个写得好的函数, 就像一个"黑箱", 你只要懂...
这里主要介绍的是Fireworks 8的位图工具的使用,如果你用过ps的话,会感觉这两个软件在位图处理中有很多相似的地方,本例是一个以女性化妆品为主打产品的企业宣传网站北京达美的形象页面效果图设计。达美公司一直致力于结合科技和自然的化妆品产品的研发。由于达美公司主打自然健康的产品理念,因此在整体的页面设计中以绿色为主要的风格,...