这是偶制作东东的思路,怎样把一复杂动画简单化,再把它复杂化。大家多多指点!
最近一朋友叫偶写点东东,介绍一下下面导航条的制作原理
先来look一下这个导航条:/Upload/2004_Pack/da2.swf
当时这家伙说有源文件,谁知下不了,本想给它解释一下,现只好自己做一个了
思考:如这个问题是 你来回答的,你会怎么做?
这是偶的思路:
再复杂的动画也是由简单动画组成的,所以偶们要找找其中的规律,几个方块运动的规律:只有两次运动,一是往右减速运动,一是往左减速运动,所以可作一布尔值来控制,至于减速运动,tulipiing写了很多,所以可以开工了。
一、先解决运动问题
方块的每次运动都是朝一终点运动,所以先要确定两个终点,如下图建立一些东东
把方块的x坐标作为一终点,另一终点定为300,as如下:
start_x=zjs1._x;
end_x=300;
编写运动函数
MovieClip.prototype.move1=function()
{
this._x+=(end_x-this._x)/2;
}//向终点end_x运动
MovieClip.prototype.move2=function()
{
this._x+=(start_x-this._x)/2;
}//返回时的终点
二、调用函数
onenterframe=function()
{
if(click1){
zjs1.move1();
}//如是click1为真,调用move1,否则调用move2
else
{
zjs1.move2();
}
if(click2){
zjs2.move1();
}
else
{
zjs2.move2();
}
}//click1控制方块1 的运动,click2控制方块2 的运动
三、鼠标点击时的设置
zjs1.onrelease=function(){
click1=true;
click2=false;
}//zjs1被点击后,设置布尔值
zjs2.onrelease=function(){
click1=false;
click2=true;
}
运行测试,怎么样?
大体的框架有了,写得该够简单了,你可能发现象这样的程序大家可能很少看到,原因是这程序有个很大的缺点,通用性不够,如果偶有更多的方块如20个,偶也这样一个个写吗??C
