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");
}//定義菜單方法.
}