点这里下载演示效果文件
之前看到一个cool站,发现其实好多效果as不是很难,主要是想法和平面上的设计配合
这个nav,模仿的还算不错,用时1个小时左右,也不指望大家能从这里学到什么,喜欢的就看一下吧:)
movieclip.prototype.goahead = function() { this.onenterframe = function() { this._x += (menuarray[this.num+1]-this._x)/5; if (int(menuarray[this.num+1]-this._x) == 0) { delete this.onenterframe; this.num++; this._name = "menu"+this.num; // 所有按钮的就位后,才可再点击 if (--rcounts == 0) { roll = true; } } }; }; movieclip.prototype.runtohead = function() { if (roll) { roll = false; var i = rcounts=this.num; if (i == 0) { roll = true; } else { // 点击按钮之后的几个按钮,是需要向前滑动的 while (i-->0) { var omenu = _level0.room["menu"+i]; omenu.goahead(); } } // 弹性运动 this.onenterframe = function() { this.dx = this.dx*.65+(0-this._x)*.45; this._x += this.dx; if (int(this._x) == 0) { //delete this.onenterframe; // 位置改变后相对的名称也要改变 this.num = 0; this._name = "menu"+this.num; } }; } }; function format() { // 用于存储各按钮依次的位置数组 menuarray = []; // 是否按钮在滑动 roll = true; // 滑动按钮的个数 rcounts = 0; _level0.createemptymovieclip("room", 10); room._x = 100; room._y = 250; var i = -1; while (++i<6) { var menu = room.attachmovie("menu", "menu"+i, i); menu._x = menu._width*i; // 将按钮位置逐个推入数组 menuarray.push(menu._x); menu.title.text = chr(65+i); menu.num = i; menu.dx = 0; menu.onrelease = runtohead; } } format(); |