一直想写一个flash教程与大家分享,可总是力不从心,要么就是时不择人。现在终于天时、地利有了,虽然人和—我不太完善。但终于有勇气写出来了,还请大家多多指教。
1.运行flash mx 2004软件,按ctrl+n新建一空白文档,在常规面板选择“flash文档”,按确定。
2.按ctrl+j,打开文档属性面板,将宽、高尺寸设为300*300(px),背景颜色设为0x000000(黑色),帧频设为20fps(也可在属性面板中直接将其设为20),其他默认即可,单击确定,进入舞台。
3.在舞台上画一倒树叶形状的图形,笔触设为无,填充颜色设为0x00cc00,大小宽高不要超过10px为佳。按o键选择圆形绘画工具,在舞台倒树叶右上处画一4*4的圆形,笔触设为无,其颜色设为0xffff00。
此是视图在200%下的图形
4.双击时间轴中“图层一”字样,将其重命名为“pic”。(其实也可不做这一步,但在制作复杂动画时,必须要以不同名称区分不同层,这样才会井然有序的完成制作)单击第一帧选择舞台所有图形,按F8键,弹出“转换为符号”对话框,行为选为影片剪辑,其他默认,单击确定。双击舞台上的影片元件,进入影片剪辑,按F8键在弹出的“转化为符号”对话框中行为选择“图形”,其他默认,按确定。
5.在时间轴图层“pic”第10,25,40帧分别按下F6键插入关键帧。选择第10帧,单击舞台上的图形符号,在属性面板中“颜色”处打开下拉列表框选择高级选项,然后单击右边的“设置”按钮,弹出“高级效果”面板,将红色效果值增加到255,其他默认,单击确定。其效果如下:
选择第25帧,单击舞台上的图形符号,按向左方向键,将图形符号向左移动2px,再按向下方向键,将图形符号向下移动3px。分别在第10,25,40帧处单击右键,选择“创建补间动画”。
按ctrl+e,回到主场景,选择舞台上的影片元件,在属性面板中将其命名为mc。
6.新建一图层,将其重命名为“script”。在“pic”层第三帧处单击右键选择“插入帧”(或按F7键)。在“script”层第二帧处连续按三下F6键,插入空白关键帧。
7.选择“script”图层第一帧,按F9键打开动作-帧面板,在面板内输入如下代码:
var i=0,n=0;
选择第二帧,在动作-帧面板输入如下代码:
mc._x = Math.sin(n)*60+150;
mc._y = Math.cos(n)*60+150;//定位mc位置
mc._rotation = i;//为mc设置旋转角度
mc.duplicateMovieClip("mc"+i, i);//复制mc
if (i>2136) {
this["mc"+i]._alpha=0;//将最后复制的mci隐藏
stop();
}
i += 24;//旋转角度增加量,也即形状
n += 0.07;//位置角度增加量。也即位置选择第三帧,在动作-帧面板输入如下代码:
gotoAndPlay(2);
8.按ctrl+enter,测试影片,这样一个动态漂亮的图案便出现了。在本动画制作中,其i决定最后图形形状,n决定最后图形位置,但i,n也即形状和位置都会影响最后图形的形状。例如:将i+=24;改为i+=3;将if(i>2136)改为if(i>1080),按ctrl+enter测试影片,就又是另一种漂亮的图形。其中奥妙请各位闪客自己体会。动画效果如下:
i+=24,if(i>2136) i+=3,if(i>1080) i+=12,if(i>1044)
要注意的是不同的i+=数值1,这个数值1不同,所需要的i的测定范围if(i>数值2),这个数值2也不同,需要计算或不停的测试来确定。
9.其实,这样的反复帧动画已经不符合as2.0面向对象编程的语法了,也即是一种过时的做法了。下面就将上面制作的动画封装成一随处可用的满足面向]对象编程语法的动画。
按ctrl+F8,新建一空影片剪辑元件,按ctrl+e回到主场景,按下“pic”层第一帧不要松开向右拖动鼠标至第三帧,然后单击鼠标右键选择剪切帧,双击库面板中影片剪辑元件3,进入后在第一帧单击鼠标右键,选择粘贴帧。同样方法,将主场景中的“script”层粘贴到影片剪辑n的令一图层,并将多于帧删除。按ctrl+e回到主场景,删除一图层,并删除剩下图层的多于帧,只保留第一帧。然后,拖动库面中影片剪辑元件3到舞台上。至此一个可随处拖用具有封装性的动画完成。只是本地位置和全局位置会有所不同,需要将本地位置转换为全局位置。其用到的方法为:
localToGlobal()
。再次拖动影片剪辑元件3到舞台上便可有两个制作动画了,很方便。由于水平有限,也是第一次写教程,疏漏和不妥之处必不可免,希望各位大虾见谅。不足之处必定改正。谢谢给位。