| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
SwishMax菜单教程

点线形弹性菜单制作(AS 2.0)           

点线形弹性菜单制作(AS 2.0)

作者:佚名 来源:闪吧 作者: 无言沙漠 更新:2007-1-13 20:46:34 错误报告 我要投稿

在AS区我发过帖子想找韩国风格的菜单(AS 2.0)dispbbs.asp?boardID=10&ID=218672却没有什么结果,后来ycccc8202(寒冰)给我了指导,经过自己研究,然后把东西做出来和大家一起分享下。
感谢:ycccc8202(寒冰)、带鱼、火星猫
代码预览:
点击浏览该文件

1、按钮制作

首先制作如图的元件(可以是图形)
按此在新窗口浏览图片

新增一个元件40×40做按钮相应的元件(可以命名成“bg”,主要是为了方便以后调整大小),接下来是制作正式制作按钮
按此在新窗口浏览图片

将制作好的图形元件放入按钮的“弹起”、“指针经过”和“按下”祯,在“点击”祯放入元件“bg”。按此原理制作其他按钮。

2、鼠标悬停后“提示”的制作

制作一个图形元件,样式可以根据自己喜欢设计成不同颜色不同形状的,接着新建一个影片剪辑,将刚刚的元件放入的第二祯,新建一层分别在第一、第二祯加入stop()
按此在新窗口浏览图片

按此方法,制作其他“提示”

3、影片剪辑MC制作

新建一个MC,将步骤1制作的按钮拖入。接着将步骤2制作的“提示”也拖入(随便什么位置即可)
按此在新窗口浏览图片

按此方法,制作其他MC

4、给MC添加控制“on()”

玀C放入场景中,并且在MC影片编辑上添加鼠标控制“on()”代码如下:

on (rollOver) {
tellTarget ("ts1") {
gotoAndStop(2); //鼠标悬停播放并且停止在ts1的第二祯
}
startDrag("ts1", true); //创建用户可以放在任何位置的影片剪辑
}
on (release, rollOut) {
tellTarget ("ts1") {
gotoAndStop(1); //鼠标移走,播放并且停止在ts1的第1祯
}
}
on (release) {
getURL("http://www.5y6s.net"); //鼠标点击跳转的网址
}

5、添加actions

这个步骤是最关键的,也是在寒冰帮助下完成的,代码如下:

Stage.scaleMode = "noScale";
createEmptyMovieClip("line", 0);
var maxNum = 5;
function Run(obj) {
obj.pos.xspeed = (obj.pos.x-obj._x)/7+obj.pos.xspeed*.9;
obj.pos.yspeed = (obj.pos.y-obj._y)/7+obj.pos.yspeed*.9;
obj._x += obj.pos.xspeed;
obj._y += obj.pos.yspeed;
}
function rndRun(obj) {
if (!obj.pos._press) {
obj._x += 10-random(20);
obj._y += 10-random(20);
}
}
onEnterFrame = function () {
line.clear();
line.lineStyle(1, 0xffffff);
line.moveTo(m1._x, m1._y);
for (var i = 0; i<=maxNum; i++) {
if (!this["m"+i].pos._press) {
Run(this["m"+i]);
}
if (i>1) {
line.lineTo(this["m"+i]._x, this["m"+i]._y);
}
}
};
for (var i = 0; i<=maxNum; i++) {
this["m"+i].pos = {x:this["m"+i]._x, y:this["m"+i]._y, xspeed:0, yspeed:0, _press:false};
this["m"+i].onPress = function() {
this.startDrag("");
this.pos._press = true;
};
this["m"+i].onRelease = this["m"+i].onReleaseOutside=function () {
this.stopDrag();
this.pos._press = false;
};
setInterval(rndRun, 1000+random(2000), eval("m"+i));
}
从2个到n个过程

1、var maxNum = 3; 改成N值
2、with 动作动作增加相应循环

----------------
lineStyle(2, 0xffffff);
moveTo(m2._x, m2._y);
lineTo(m3._x, m3._y);
----------------

用于连接2到3点的直线
在这里你可以看到“0xffffff”意为这你也可以修改直线的颜色
3、增加setInterval值
setInterval(rndRun, 1000+random(2000), m3);
----------------
setInterval
说明
函数;在播放 SWF 文件时,每隔一定的时间,就调用函数、方法或对象。可以使用间隔函数更新来自数据库的变量或更新时间显示。
----------------

好了,添加一个背景层就可以全部完成了,预览下吧,看看什么结果。
源码:
点击浏览该文件

给大家研究,希望多多提出还有不完善的地方。

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。