Tween类写成的全代码弹性菜单

我并不打算详细说说这个菜单,全代码的,大家粘贴到主场景第一帧就可以了,这里只是说说重点.

我定义了两个函数,第一个是创建菜单选项,也就是方块和文字的,第二个创建运动的.我只是把末数量变成参数,这样在rollOver/rollOut时都可以用同一个函数.

最上面三个数组是关于菜单的定义的,包括颜色,文字和URL.

有个小小的技巧在这里面,就是用String(this._name).substr(-1,1) 来获得当前MC的序号,这样就可以把复制出来的MC定义转向到不同的URL.我的另一篇教程也有讲这个,不过说得太长了...(我是有点儿唐僧-___-#).

下面是代码:

mcColorArray = [0xF00000, 0xFF0000, 0xFFF000, 0x0FFF00, 0xFF0FF0, 0xF0FFF0];

//定义菜单方块的颜色

mcText = ["main", "news", "blog", "downloads", "about", "links"];

//定义菜单文字

urlArray=["#1","#2","#3","#4","#5","#6"];

//定义菜单跳转到URL

function createMc(mcName, mcX, mcY, mcDepths, mcColor, mcText) {

_root.createEmptyMovieClip(mcName, mcDepths);

with (eval(mcName)) {

_x = mcX;

_y = mcY;

lineStyle(1, 0x000000, 0);

beginFill(mcColor, 100);

moveTo(30, 30);

lineTo(-30, 30);

lineTo(-30, -30);

lineTo(30, -30);

lineTo(30, 30);

endFill();//定里把菜单定义为正方形

createTextField(mcText, 1, -30, -10, 60, 20);

eval(mcText).text = mcText;

eval(mcText).type = "dynamic";

var myTextFormat = new TextFormat();

myTextFormat.align = "center";

eval(mcText).setTextFormat(myTextFormat);

}

}

//创建菜单选项

function TweenMove(mcID, endData) {

TweenWidth = new mx.transitions.Tween(eval(mcID), "_width", mx.transitions.easing.Elastic.easeOut, eval(mcID)._width, endData, 2, true);

TweenHeight = new mx.transitions.Tween(eval(mcID), "_height", mx.transitions.easing.Elastic.easeOut, eval(mcID)._height, endData, 2, true);

}

//创建运动

for (var i = 0; i createMc("mcMenu"+i, 50+i*70, 50, i+1984, mcColorArray, mcText);//创建菜单

eval("mcMenu"+i).onRollOver = function() {

TweenMove(this, 80);

};

eval("mcMenu"+i).onRollOut = function() {

TweenMove(this, 60);

};

eval("mcMenu"+i).onRelease=function(){

var urlocation=String(this._name).substr(-1,1);

getURL(urlArray[urlocation],"_blank");

}//定义菜单方法.

}