最终效果预览:
[附件:源文件下载]
源码及其解析:
//直接用AS画的菜单,功能很少,色块会随着鼠标的移动而移动. //以下是主程序. var menuText = new Array("我收藏的图片", "我收藏的音乐", "我的个人作品", "我要看日记本", "现在写信给我", "进我的留言簿"); //菜单的标签. var menuURL = new Array("http://#", "http://#", "http://#", "http://#", "web@webjx.com", "http://www.webjx.com"); //菜单标签指向的网址. var theItem; //建立MC的时候就用上这个变量. var i; //循环变量. var step; //色块移动的步数. var running; //判断是否移动的变量. //建立新的函数.引用时可直接用this.DrawRect(x,y,w,h); //x,y-->坐标值,w,h-->宽和高. MovieClip.prototype.DrawRect = function(x, y, w, h) { this.moveTo(x, y); this.lineTo(x+w, y); this.lineTo(x+w, y+h); this.lineTo(x, y+h) this.lineTo(x, y); }; //建立菜单项目的的函数. //mc-->电影剪辑 x,y-->坐标 w,h-->宽,高. text-->字符串. function CreateItem(mc, x, y, w, h, text) { mc.createTextField("text", 2, x+10, y, 85, 20); //建立空的动态文字段 mc.text.text = text; //为新建的动态文字段赋值,颜色, mc.text.textColor = 0x000000 //文字大小有无边框,可否选择. mc.text.size = 14; mc.text.border = false; mc.text.selectable = false; } //开始建立菜单的函数. function CreateMenu(mc) { //建立一的电影剪辑,并在上面化一个色块.名字叫bg-->BackGround. mc.createEmptyMovieClip("bg", 1); //建立一个空MC mc.bg.beginFill(0x33ccff, 100); //开始填充 mc.bg.DrawRect(0, 0, 90, 20); //调用函数 mc.bg.endFill(); //结束填充 mc.bg._alpha = 50; //透明度 mc.bg._visible = false; //可见度 //结束绘画. //下面开始循环. for (i=0; imc.createEmptyMovieClip("item"+i, 2+i); theItem = mc["item"+i]; theItem.index = i; CreateItem(theItem, i*90, 0, 90, 20, menuText[i]); //桢开始时的动作. theItem.onEnterFrame = function() { //if语句的默认判断条件是"真" //当running==true时. if (running) { if (mc.bg._x<=step*90) { mc.bg._x += 5; } else if (mc.bg._x>=step*90+10) { mc.bg._x -= 5; } } }; //经过时的动作. theItem.onRollOver = function() { mc.bg._visible = true; running = true; step = this.index; }; //离开时的动作. theItem.onRollOut = function() { mc.bg._visible = false; running = false; }; //单击时的动作. theItem.onPress = function() { getURL(menuURL[this.index]); }; } //循环结束. } createEmptyMovieClip("menu", 10); //建立"menu"电影剪辑. menu._y = 0; //坐标值. menu._x = 0; CreateMenu(menu); //建立菜单. //把这个程序放在场景的第一桢,然后运行. //我花了一个早上写的东西.还凑和. |
|