日期:2013-10-4 浏览次数:20126次

  前言

  在我们的印象中,flash是基于矢量的一套设计软件,位图不利于缩放,而且位图的每个点的位置和颜色必须存储,所以位图文件会比较大。所以,一般flash里用到的几乎都是矢量图资源。

  那么,位图在flash里就真的没有用武之地了吗?大家可以看看偶做的这个例子:

点击这里下载源文件

  效果还可以吧?这个就是传说中的像素画。由于像素画是很特别的一种位图形式,所以相对于矢量,它在flash里还是有自己优势的。下面要和大家讨论的就是flash和像素画的结合运用。

  关于像素

  像素是什么呢?像素是位图的最小单元格,一个像素点是一个颜色构成的小方块。像素设计就是在这些小方格上做文章,看似简单,其实画起来很难。国内也有很多专业的象素设计师,佩服中。

  不过其中,将flash和像素结合的情况,似乎不是很多。偶某天试着研究了一下,发现问题一堆,不过基本上都是可以解决的。下面就开始进入正题吧。

  像素图的准备

  像素图的绘制工具本人还是推荐Photoshop;当然有些达人坚持直接用画板画,偶感觉操作是很不方便的。至于怎么画,这里就不说了,不是不想说,只是偶也是初学者,怕误倒大家,当然,欢迎提问,一起讨论学习。偶尝试着用flash和像素构建了一个网站,欢迎来踩,http://www.toorison.com

  当然,如果想专业一点的话,大家可以去国内的像素论坛(如像素森林,ourcall)学习,那里有相关详细教程。

  导入flash

  这步是问题比较多的一步,flash太智能了。在我感觉中,它有n多帮助你优化和平滑图片的功能,导入,导出,生成动画时都会帮你优化。而对于像素图来说,这些都是不需要的,甚至是适得其反的。像素的特点就是不平滑,它不需要anti-alas(抗锯齿)发挥功能。容易出问题的步骤就是生成元件的问题。

我们看这两张图:

  左边那张明显错位了几个像素。有很多人会问,在flash里处理的时候都是一样的,而且没有发生错位,怎么有的图形在导出动画后会发生错位呢?原因就是这步:

按此在新窗口浏览图片

  如果在导入做好的像素图后,直接在时间轴上生成补间动画,库里会出现补间的图形元件,也可以生成动画。看似没有问题,但是导出影片后,经常会出现上述错误,像素图是严谨的,不允许尺寸发生任何的拉伸,偶也不知道这个过程发生了什么拉伸,总之大家不要那么做比较好。

  我的办法是在导入后,右击图片,将其转换为mc,取个好名字,于是万事大吉,这个mc元件无论你怎么调用,怎么导出,都不会发生错位和变形了。当然,你也可以在右击时转换成图形元件,不过我感觉图形元件这个功能MM迟早要把他去掉。

  制作动画

  这个环节是flash里的关键环节,能做出什么样的动画就靠你的想象力了。偶初步尝试了一下开火车的效果,还算理想,就是头上那个例子。

  在讲这个例子前,要把像素画里一个普遍使用的角度给大家介绍一下,那就是传说中的22.6度双点线组合,如下图:

按此在新窗口浏览图片

  22.6度线流畅整洁,这是放大800倍的效果,缩小上色后就是这样:

按此在新窗口浏览图片

  那么我就以这种形式的像素图来说运动方式。这时候要造成视觉上的立体感,就不能像平面图那样左右移,上下移了,更不能乱移动。在那张放大800倍的图中,我们看到,像素格是按照22.6度的方向2格2格递进的,那么对于黄色的长方体来说,要沿着它坐标延伸的方向移动,在flash里的坐标变化就应该是:

  x变化2-y变化1 的比例。于是如果我们把它当成火车mc,命名为:move_train。

  帧上的as就应该是:

this.onEnterFrame = function() {
move_train._x += 2; //move_train._x递增2
move_train._y++; //move_train._y递增1
}

  这样,火车就沿着22.6度线平滑移动了。有些朋友要问,不就是个移动的效果吗,不用as,直