点击浏览该文件第十四讲:文字鼠标跟随
鼠标跟随的原理基本上是一样的,都是利用拖拽一个影片,跟随的部分通过被拖拽影片的坐标向它接近。(这个在做导航条的时候讲过影片怎么根据新位置移动的)
制作文字的鼠标跟随分两部分:
1.先复制一定影片,给文本加载不同的字符。
2.让这些影片的位置按顺序排列,后面影片的位置根据前面的影片位置变化而变化。
理论上是这样的,明白了原理我们看例题。下载文件打开:
点击浏览该文件第一步:新建一影片trail,放一个动态文本,命名tt.把影片拖入场景中,命名trail.
第二步:新建影片control(这个影片我们写AS)
第一帧:
txt="http:\\\\www.4uup.com";//给变量赋字符串值,需要讲的地方是\\\\,简单的来说\是一种编译符号,\n,表示换行,\t跳格还有很多。所以要出现\,必须用\\来实现,如果还不明白请自己看资料。
max=length(txt); //获取字符串的长度
for(i=1;i<=max;i++){ //下面是复制影片并加载标记
duplicateMovieClip(_root.trail,"trail" add i,i);
set("_root.trail" add i add ".tt",substring(txt,i,1));
}
第一帧的作用就是字符串有几个字符就复制几个影片,并且每个影片显示一个不同的字符(不懂,请看加载标记那一讲);
第二帧:
for (i=1; i<=max; i++) {
_root["trail" add i]._x = _root["trail" add i]._x+((_root["trail" add (i-1)]._x)-_root["trail" add i]._x)/3+3;
_root["trail" add i]._y = _root["trail" add i]._y+(_root["trail" add (i-1)]._y-_root["trail" add i]._y)/3;
}
这一帧是关键,影片的位置都是有上一个影片来决定。
_root["trail" add i]._x = _root["trail" add i]._x+((_root["trail" add (i-1)]._x)-_root["trail" add i]._x)/3+3;
去掉这个表达式最后面的“+3”;结合我们上次导航条学过的位置控制来看。
_root["trail" add i]._x ;//当前影片的横坐标位置;
_root["trail" add (i-1)]._x;//上个影片的位置;
是不是当前影片不断向上个影片靠拢?+3如果没有它,当前影片靠拢后就和上个影片重合了,有了它,他们之间就有3个象素的距离。(最好还是用数学,就是带进去是数自己体会容易理解)
如果能理解横坐标了,那么纵坐标也是一样的。
忘记了,第一个影片的位置是有被拖动影片位置决定的。马上讲到。
这个for循环一次就控制了所有的影片,所以玉兰的时候可以看到所有的影片都在动。
第三帧:
gotoAndPlay(2);//播放第二帧,也就是一直利用第二帧来调整位置。
把这个影片也拖进场景中。
第三步:
新建影片trail0,拖进场景中命名为trail0;(trail0空影片,我们讲过)
第四步:关键的一步,不然所有的工作全费:)
在场景第一帧写上:
startDrag(_root.trail0,true);//拖拽影片,锁定在鼠标中心
_root.trail._visible=false;//使trail影片不可见
呵呵,结束,效果怎么样?鼠标跟随原来是这么简单:)
是不是发现,把学过的知识结合起来一样可以做出不错的效果来?多想多做,多动脑。
下面看今天的作业:我不得又提起onClipEvent了,今天作业就是,把control影片里的代码,转化成用onClipEvent来完成。
提示:复制影片用load事件
控制位置不用说肯定是用……
明天是周末,我也可以出去轻松一下,祝大家周末愉快!
