主题:  帮忙改一下源码

Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#12001/10/8 12:18:56
我做了一个鼠标移动速度的震动效果
是用dulpicatemovieclip实现的
但是复制出来的mc的x&y坐标不能确定
但是在flashplayer下基本能在中间
谁能帮我改一下?


源码地址: www.5dmedia.com/users/lengyu/shake.fla

编辑历史:[这消息被冷语编辑过(编辑时间2001-10-08 12:19:57)]


Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#22001/10/8 12:39:37
as如下:
=================================================================
onClipEvent (load) {
    n = 1;
    xpoint = _xmouse;
    ypoint = _ymouse;
}
onClipEvent (enterFrame) {
    x = int((_xmouse-xpoint)/0.12)/3;
    y = int((_ymouse-ypoint)/0.12)/3;
    total = Math.abs(x)+Math.abs(y);
    while (n<10) {
        duplicateMovieClip (this, "this"+n, n);
        setProperty (_root["this"+n], _x, this._x+random(total)-random(total));
        setProperty (_root["this"+n], _y, this._y+random(total)-random(total));
        setProperty (_root["this"+n], _alpha, random(70)+30);
        n++;
    }
}
=============================================================================



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#32001/10/8 12:58:07
先确定一个在中心位置(当然不能用random了)

另外,用mousemove事件。



Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#42001/10/8 22:53:05
还是没改好..
能提供一下大概的思路么?



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#52001/10/11 19:27:05
大致流程如下:
1。duplicatemovieclip
2。on(load)设置上一次的鼠标位置
3。on(mousemove)根据位置和上次位置之差(x or y) 获得振幅,改变mc的位置
4。使mc渐隐
5.捕捉下一次mousemove事件



Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#62001/10/12 2:12:53
嘿嘿
想了一个简单的方法
==================================
onClipEvent (load) {
n = 1;
xpoint = _xmouse;
ypoint = _ymouse;
}
onClipEvent (mouseMove) {
x = int((_xmouse-xpoint)/0.12)/3;
y = int((_ymouse-ypoint)/0.12)/3;
total = Math.abs(x)+Math.abs(y);
}
onClipEvent (enterFrame) {
while (n<10) {
duplicateMovieClip (this, "this"+n, n);
setProperty (_root["this"+n], _x, this._x+random(total)-random(total));
setProperty (_root["this"+n], _y, this._y+random(total)-random(total));
setProperty (_root["this"+n], _alpha, random(70)+30);
n++;
}
}
===========================================
基本没怎么改源码
只是把原来的检测鼠标事件改成了mousemove
这样就避免了初始时mc自动改变xy轴

编辑历史:[这消息被冷语编辑过(编辑时间2001-10-12 02:13:58)]
[这消息被冷语编辑过(编辑时间2001-10-12 02:14:23)]


janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#72001/10/12 9:37:16
但是有一点很奇怪,n是在不断地累加的,自load后,就没有减少。它达到10 后,while循环体如何执行?



Fierce

职务:普通成员
等级:2
金币:10.0
发贴:468
#82001/10/12 12:42:58
其实源码基本没怎么动
就是把原来的计算鼠标移动速度的原码的触发事件改成了mousemove
这样鼠标的初始值就为0
避免的初始时就随机改变mc的xy



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#92001/10/13 13:51:05
问题是n++在enterframe事件中,它只能运行10次?