先看看效果图:
有没有动心呀?下载源文件吧!
源文件下载
下载源文件之后打开,你可以看到主场景里面什么都没有,搞过一点flash的人一定会很奇怪吧。没关系慢慢来。
aol用的是flash mx,所以以下是flash mx的图示,这个效果在flash 5中作法一样。
1.现立一个新的动画,将舞台设为384*384 pixels;backgroud颜色为#000066;framerate为48fps.
2.按ctrl+f8建立一个名为cabeza的movie clip(以后简称mc),画好鱼头。如图。
3.依上建立一个名为aletas的mc表示鱼鳍,一个espina的mc表示鱼身和鱼尾。如图。
鱼身和鱼尾 [img][/img]
鱼鳍
4.最有技巧性的一步:用ctrl+l把资料库调出来,可以看到刚才建的那三个mc在这里。用右键分别点击这些mc,选择linkage这一项,打开linkage property属性面板,在indentifine项中键入与该mc同名的链接词。复选框选择第一项和第四项。
如图。
5.回到主场景。分别在第一至第三帧加入如下actionscript(以后简称as)
//---------------------------------------------------------
//这是第一帧的as.
//--------------------------------------------------------
_quality="medium"; // 选择动画质量适中,这样动画会运动得更快。
// 以下是各个部分的参数,你可以自己调一下数据会更清楚。
n = 20; // 鱼身的长度,也是expina有多少片.
r = 12; // 鱼头跟鼠标的速度。
c = 2; // 鱼身的连接速度,应该是这样表达吧,跟r也有关系。
a = 2; //鱼鳍片数。
// 以下参数供参考,可你让你更明白:
// ( n=20, r=12, c=2, a=2 )
// ( n=30, r=12, c=1.5, a=-20 )
// ( n=25, r=12, c=1.2, a=10 )
// ( n=40, r=12, c=2.5, a=-4 )
// ( n=40, r=12, c=2.2, a=2 )
// 定义两个数组,表示坐标。
var x = new array();
var y = new array();
// 初始化
for (i=0;i
// 构造一只鱼
for (i=1;i// 先造头,嘿嘿,说得有点儿怪(aol摸了摸头)。
if (i==1) {
attachmovie("cabeza", "pieza"+i, n+1-i);
// 我们把两片鱼鳍放在鱼身的第四个和第十四个位置,你也可以选择放哪。
} else if ( (i==4) (i==14) ) {
attachmovie("aletas", "pieza"+i, n+1-i);
// 剩下的位置留给鱼身。
} else {
attachmovie("espina", "pieza"+i, n+1-i);
}
this["pieza"+i]._x = 142+x[i-1];
this["pieza"+i]._y = 142+y[i-1];
//减小一点儿体积,增强鱼的透明度。
this["pieza"+i]._xscale = 102+a*(1-i);
this["pieza"+i]._yscale = 102+a*(1-i);
this["pieza"+i]._alpha = 100-(100/n)*i;
}
//--------------------------------------------
//这是第二帧的as.
//这是鱼怎么移动的帧。
//--------------------------------------------
// 鱼头跟着鼠标动
x[0] = x[0]+(_xmouse-x[0]-142)/r;
y[0] = y[0]+(_ymouse-y[0]-142)/r;
// 其它的部分跟着动
for (i=1;ix[i] = x[i]+(x[i-1]-x[i])/c;
y[i] = y[i]+(y[i-1]-y[i])/c;
}
// 移动后的鱼的属性
for (i=1;i// 鱼的各部分所在的新位置
this["pieza"+i]._x = 142+(x[i-1]+x[i])/2;
this["pieza"+i]._y = 142+(y[i-1]+y[i])/2;;
// 计算鱼的转折角度
this["pieza"+i]._rotation = 57.295778*math.atan2((y[i]-y[i-1]),(x[i]-x[i-1]));
}
//--------------------------------
//这是第三帧的as。
//回到第二帧,继续跟鼠标。
//--------------------------------
gotoandplay (2);
按ctrl+enter测试,搞 定。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器