爱你不要你 2008-9-28 13:42
Flash基础理论:绚酷鼠标
作者:FL基理大师 来源:大师之家
[font=宋体][b]在学习之前,我们先复习一下前面(功能代码07<百变图>)曾用过的
目标移动公式:[/b][/font]
[font=宋体][color=#ff0000][b]mc.当前坐标 += (mc.目标坐标 - mc.当前坐标) * A 缓动常量(0<A<1)[/b][/color][/font]
[font=宋体][b]例如:[/b][/font]
[font=宋体]舞台上有一个影片剪辑,实例名为 mc,使其移动到 x=400, y=300 的位置
[b]mc.Tox = 400;
mc.Toy = 300;[/b]
[b]mc.onEnterFrame = function() {[/b]
[b] this._x += (this.Tox-this._x)*0.3;
this._y += (this.Toy-this._y)*0.3;[/b]
//更新每个实例的坐标了,可理解为:
//实例的 X 坐标 = 自己的X坐标 +(目标的X坐标–自己的X坐标)*0.3
//实例的 Y 坐标 = 自己的Y坐标 +(目标的Y坐标–自己的Y坐标) *0.3
[b]};[/b][/font]
[font=宋体][b]实例一[/b][/font]
[align=center][font=宋体][/font][swf]http://www.flashempire.com/myfe/upload/flash/160/1590193_1199851676.swf[/swf][/align][align=left][font=宋体][color=#0000ff][b]思路:
1.复制出Num个鼠标,鼠标的透明度递减(如果i是递增的,N-i 就是递减的);
2.用第Num鼠标作为当前鼠标,其它均为跟随;
3.跟随的原理就是以前一个鼠标位置作为目标坐标,使后一个鼠标向前一个的位置移动。[/b][/color][/font][/align][font=宋体][b]步骤1:[/b][/font]
[align=center][font=宋体][img]http://www2.flash8.net/UploadTeach/200802/20080218175343787.jpg[/img]
[/font][/align][font=宋体] 绘制一个鼠标,保存为影片剪辑,连接—>导出—>标志符"mouse"
[b]步骤2:[/b]
加入AS代码:
[b]Mouse.hide();
[/b]//隐藏原有鼠标
[b]var Num = 10;
[/b]//鼠标跟随的数量
[b]for (var i = 0; i<Num ; i++){
_root.attachMovie("mouse", "m"+i, i);
[/b] //复制出Num个鼠标的影片剪辑
[b][color=#ff0000] this["m"+i]._alpha = (Num-i)/Num*100;[/color]
[/b] //设置出渐隐效果,每个鼠标的透明度递减
[b]}
_root.onEnterFrame = function() {
this["m"+0]._x = _xmouse;
this["m"+0]._y = _ymouse;
[/b] //让this["m"+0]作为当前鼠标
[b] for (var i = 1; i<Num ; i++){
this["m"+i]._x += ((this["m"+(i-1)]._x)-this["m"+i]._x)*0.5;
this["m"+i]._y += ((this["m"+(i-1)]._y)-this["m"+i]._y)*0.5;
}
[/b] //令后一个鼠标跟随前一个鼠标的位置,缓动地向前一个鼠标接近
[b]};[/b][/font]
[font=宋体][align=left]
[b]实例二[/b][/align][align=center][/font][swf]http://www.flashempire.com/myfe/upload/flash/160/1590193_1199851758.swf[/swf][/align][align=left][b][color=#0000ff]思路:
1.方法与实例一类似;
2.改变了鼠标跟随的样式;
3.使小的鼠标透明度大,大的鼠标透明度小(如果i是递增的,N-i 就是递减的)。[/color][/b][/align][b]步骤1:[/b]
[align=center][img]http://www2.flash8.net/UploadTeach/200802/20080218175225282.jpg[/img]
[/align] 绘制一个鼠标,保存为影片剪辑,连接—>导出—>标志符"mouse"
[b]步骤2:[/b]
加入AS代码:
[b]Mouse.hide();
[/b]//隐藏原有鼠标
[b]var Num = 10;
[/b]//鼠标跟随的数量
[b]for (var i = 0; i<Num ; i++){
_root.attachMovie("mouse", "m"+i, i);
[color=#ff0000] this["m"+i]._xscale = this["m"+i]._yscale=i/Num*100;[/color]
[/b] //鼠标的尺寸递增
[b][color=#ff0000] this["m"+i]._alpha = (Num-i)/Num*100;[/color]
[/b] //鼠标的透明度递减
[b]}
_root.onEnterFrame = function() {
this["m"+0]._x = _xmouse;
this["m"+0]._y = _ymouse;
for (var i = 1; i<Num ; i++){
this["m"+i]._x += ((this["m"+(i-1)]._x)-this["m"+i]._x)*0.5;
this["m"+i]._y += ((this["m"+(i-1)]._y)-this["m"+i]._y)*0.5;
}
};[/b]
[b]实例三[/b]
[align=center][/align][align=left][font=宋体][color=#0000ff][b]思路:
1.方法与实例一类似;
2.改变了鼠标跟随的样式,也是使鼠标跟随围成一个圆的关键;
3.改变每个鼠标的旋转。[/b][/color][/font][/align][b]步骤1:[/b]
[align=center][b][img]http://www2.flash8.net/UploadTeach/200802/20080218175356241.bmp[/img]
[/b][/align] 绘制一个鼠标,保存为影片剪辑,连接—>导出—>标志符"mouse"
注意:鼠标与注册点之间要留有一定的距离,这是使之围成圆的关键
[b]步骤2:[/b]
加入AS代码:
[b]var Num = 30;
[/b]//鼠标跟随的数量
[b]for (var i = 0; i<Num ; i++){
_root.attachMovie("mouse", "m"+i, i);
[color=#ff0000] this["m"+i]._rotation = i*24;
[/color][/b] //设置初始的旋转角度
[b][color=#ff0000] this["m"+i]._alpha = (Num-i)/Num*100;[/color]
}
_root.onEnterFrame = function() {
this["m"+0]._x = _xmouse;
this["m"+0]._y = _ymouse;
this["m"+0]._rotation += 10;
for (var i = 1; i<Num ; i++){
this["m"+i]._x += ((this["m"+(i-1)]._x)-this["m"+i]._x)*0.5;
this["m"+i]._y += ((this["m"+(i-1)]._y)-this["m"+i]._y)*0.5;
this["m"+i]._rotation += 10;
[/b] //使所有鼠标都转起来
[b] }
};[/b]
[b]Flash 充电: for 循环实现数组反向存储[/b]
[b]var Len = 20;
[/b]//数组长度
[b]var A:Array = new Array(Len);
for (var i = 0; i<Len ; i++){
A[i] = Len-i;
//A[Len-i-1] = i;
}
trace(A);[/b]