简介:
继发表在《电脑商情报家用电脑》第7期上的文章《AS2.0精彩特效-位图的飘动效果》之后,作者zjs35在本期文章中使用了AS1.0对该特效进行了重新分析与讲解,并在文中增加了另外两个同类特效的应用。该文章已经在《电脑商情报家用电脑》第8期发表
一、卷筒效果制作
一张纸可以用手卷成筒状,一张长方形的位图也可以在Action卷成筒状,并随鼠标动态旋转。
用椭圆方程,可轻松实现此效果,下面我们就来学习这种方程的用法。
制作思路:用Action把长方形的位图竖直切成小块,并将每一小块设为一个电影剪辑,让这些电影剪辑均匀连续分布在椭圆上,并为每个电影剪辑设置深度和透明度。
1.制作遮罩动画
新建一个电影剪辑,第1层放置红色的长方形,第2层放置位图。在第1帧将位图与长方形的左端对齐,在结束帧,将位图和长方形右端对齐,在第2层创建补间动画,将第一层设为遮罩,如图所示;把制作好的电影剪辑拖到场景中,实例名设为“a1”;

2.编写程序
新建一个图层,在第1帧插入空白关键帧,在动作面板中输入:
var num = 30;
// 遮罩动画总共为30帧,影片的数目与帧数相等
var p = 2*Math.PI/num;
var cen_x = 200, cen_y = 150;
var a = 40, b = 4; //截距
for (var z = 2; z<=num; z++) {
duplicateMovieClip("a1", "a"+z, z);
}
onEnterFrame = function () {
for (var z = 1; z<=num; z++) {
var mc = this["a"+z];
mc.gotoAndStop(z); //30个mc分别跳到1-30帧,实现位图的切割
var y = Math.cos(n+p*z)*b;
var x = Math.sin(n+p*z)*a;
mc._y = y+cen_y;
mc._x = x+cen_x;
x = (y>0) ? 2*a-Math.abs(x) : Math.abs(x);
mc._alpha = x/a*50+20;
mc.swapDepths(x);
}
n += (_xmouse-cen_x)/5000;
};按快捷键“Ctrl+Enter”进行测试,尝试做下列修改:改变截距,改变遮罩动画的帧数,改变遮罩动画中红长方形的宽度,加深对程序的理解。