分类

安卓应用安卓游戏攻略资讯

Flash

Flash鼠标特效精选实例(4)

作者:佚名 来源: JZ5U整理 日期:2005-8-20 21:28:20
  第四节:磁铁鼠标

  该实例实现的是,一鼠标如同磁铁一样吸附周围的事物,最终效果如图4.1所示,要实现这一效果,具体步骤如下:



图4.1 磁铁鼠标

  1.新建一影片,通过属性面板设置其大小为550pxX400px(单位为象素),背景色为#CCCCCC。

  2.新建一按钮元件“reset”,其制作方法这里不再赘述,按钮如图4.2所示:



图4.2 制作按钮

  3.新建一影片剪辑“mental”,这就是影片中的小铁削,其时间轴窗口中只有一帧,在工作区中绘制小铁削如图4.3所示:



图4.3 绘制小铁削

  4.新建一影片剪辑“magnet”,也就是影片中的矩形磁铁,其制作非常简单,只需要在工作区中绘制如图4.4所示的矩形图案即可,当然读者可以进行个性化设置磁铁样式和颜色。



图4.4 制作磁铁

  5.返回主场景,将默认图层更名为“iron filing”,从库在将影片剪辑“mental”拖放到工作区中创建实例“m”,并为该实例添加如下脚本:

onClipEvent (load) {
n = substring(_name, 2, 1);
mindis = 200;
k = .002;
decay = .97;
}
onClipEvent (enterFrame) {
mouse_x = int(_root._xmouse-this._x);
mouse_y = int(_root._ymouse-this._y);
if (mouse_x>0 && mouse_y>0) {
quad = Number(4);
}
if (mouse_x<0 && mouse_y>0) {
quad = Number(1);
}
if (mouse_x<0 && mouse_y<0) {
quad = Number(2);
}
if (mouse_x>0 && mouse_y<0) {
quad = Number(3);
}
abs_x = Math.abs(mouse_x);
abs_y = Math.abs(mouse_y);
tg = abs_y/abs_x;
_root.leo = Math.atan(tg)*Number(180)/Math.PI;
if (quad == 1) {
angle = Number(90)-Number(_root.leo);
}
if (quad == 2) {
angle = Number(90)+Number(_root.leo);
}
if (quad == 3) {
angle = Number(270)-Number(_root.leo);
}
if (quad == 4) {
angle = Number(270)+Number(_root.leo);
}
setProperty (_this, _rotation, angle);
x = this._x;
y = this._y;
mx = _root._xmouse;
my = _root._ymouse;
disx = math.abs(x-mx);
disy = math.abs(y-my);
if (math.sqrt(disx*disx+disy*disy)<=mindis and stick eq "") {
if (this.hitTest(_root.magnet)) {
stick = "yes";
xspace = x-mx;
yspace = y-my;
}
xmov = k*(mx-x)+decay*xmov;
ymov = k*(my-y)+decay*ymov;
setProperty (this, _x, xmov+x);
setProperty (this, _y, ymov+y);
}
}
onClipEvent (mouseMove) {
if (stick eq "yes") {
setProperty (this, _x, _root._xmouse+xspace);
setProperty (this, _y, _root._ymouse+yspace);
}
}

onClipEvent (enterFrame) {

}
  6.新建图层“magnet”,将影片剪辑“magnet”拖放到工作区中创建实例,其实例命为“magnet”,并为其添加如下脚本:
onClipEvent (load) {
startDrag(this, true);
}

  7.新建一图层“spreadbutton”,将按钮元件“reset”拖放到工作区的适当位置,并为按键添加如下脚本:

on (press) {
_root.m.stick = "";
setProperty(_root.m, _x, Random(550));
setProperty(_root.m, _y, Random(400));
for (i=1; i<=25; ++i) {
_root["m"+i].stick = "";
setProperty(_root["m"+i], _x, Random(550));
setProperty(_root["m"+i], _y, Random(400));
}
}

  8.新建一图层“actions”,该图层主要用来存放脚本以控制影片的动作,其脚本如下所示:

num = 25;
n = 1;
while (n<=num) {
duplicateMovieClip("m", "m" add n, n);
setProperty("m" add n, _x, Random(550));
setProperty("m" add n, _y, Random(400));
n = n+1;
}
  9. 这样整个鼠标中键模拟效果就制作完成,保存作品,按“ctrl Enter”预览最终效果。

展开

文章推荐

应用推荐

网友评论