2013-04-03 69 views
0

我基於ActiveTuts的教程製作網站。基於Flash AS3的網站 - 爲每個菜單添加不同的顏色

這裏是我的代碼:

var navArray:Array=["HOME", "WORK", "MOVIES", "ABOUT", "CONTACT"]; 

for (var i:Number=0; i<4; i++) { 
    var navItem:NavItem=new NavItem ; 
    navItem.x=navItem.width*i; 
    navItem.nav_name.text=navArray[i]; 

    buttonArray.push(navItem); 
    navItem.addListeners(); 
    navContainer.addChild(navItem); 
    navItem.name=String(i); 
    navItem.addEventListener(MouseEvent.CLICK, onNavClick); 
} 

我想提出一個顏色的每個菜單上。

http://active.tutsplus.com/tutorials/web-design/create-a-full-screen-scalable-flash-website-part-1/

它在第二個視頻。

這裏是我的完整代碼:

// INITIAL VARIABLES 

var buttonArray:Array = new Array(); 
var currentButton:Object=new Object ; 


// ADD NAVIGATION CONTAINER 

var navContainer:Sprite=new Sprite ; 
addChild(navContainer); 

// NAMES OF BUTTONS 

var navArray:Array=["HOME", "WORK", "MOVIES", "ABOUT", "CONTACT"]; 

// ADD ALL THE BUTTONS WITH A FOR LOOP 

for (var i:Number=0; i<5; i++) { 
    var navItem:NavItem=new NavItem ; 

    navItem.x=navItem.width*i; 
    navItem.nav_name.text=navArray[i]; 
    buttonArray.push(navItem); 
    navItem.addListeners(); 

    navContainer.addChild(navItem); 

    navItem.name=String(i); 

    navItem.addEventListener(MouseEvent.CLICK, onNavClick); 

} 

function onNavClick(evt:MouseEvent):void { 

    // PREVIOUS BUTTON 
    currentButton.y = 0; 
    currentButton.addListeners(); 
    currentButton.addEventListener(MouseEvent.CLICK, onNavClick); 

    // NEXT BUTTON 
     currentButton = evt.target; 
     currentButton.removeListeners(); 
     currentButton.removeEventListener(MouseEvent.CLICK, onNavClick); 
} 

// INITIAL STATE OF NAVIGATION 

initialNavigation(); 

function initialNavigation():void { 

    buttonArray[0].y=-10; 
    currentButton=buttonArray[0]; 
    currentButton.removeListeners(); 
    currentButton.removeEventListener(MouseEvent.CLICK, onNavClick); 

} 

現在navItem代碼:

// FORMAT TEXTFIELD 
nav_name.autoSize=TextFieldAutoSize.LEFT; 
nav_name.selectable=false; 

// POSITION TEXT ACCORDING TO IT'S WIDTH 
nav_name.x=224-nav_name.width-15; 
nav_name.mouseEnabled=false; 

// ROLL OVER 

function onOver(evt:MouseEvent):void { 

    TweenLite.to(this, 0.2, { y:-10}); 
    trace("OVER"); 
} 

function onOut(evt:MouseEvent):void { 

    TweenLite.to(this, 0.2, { y:0}); 
} 

function addListeners():void { 

    this.addEventListener(MouseEvent.ROLL_OVER, onOver); 
    this.addEventListener(MouseEvent.ROLL_OUT, onOut); 
} 

function removeListeners():void { 

    this.removeEventListener(MouseEvent.ROLL_OVER, onOver); 
    this.removeEventListener(MouseEvent.ROLL_OUT, onOut); 
} 

我嘗試做這樣CGA說,這是確定的顏色,但現在我的「addlisteners」沒有按不再工作

+1

您可以發佈您NavItem代碼?如果您也鏈接到教程,可能會很有用。 – 2013-04-03 23:25:52

+0

http://active.tutsplus.com/tutorials/web-design/create-a-full-screen-scalable-flash-website-part-1/ 它在第二個視頻中。 – john 2013-04-06 09:04:06

回答

0

這一切都取決於NavItem是什麼。我研究了你提到的教程,我知道它是用閃存ide創建的按鈕。這個按鈕是來自flash ide的Button類,它有四個包含按鈕狀態的幀。如果你想改變這些按鈕的顏色,我建議創建其中的四個,每個都有自己的顏色。

0

我無法看到的教程,但你可以做的是:

  1. 給皮膚上色的文本:navItem.nav_name.textColor = 0xCC0000; (這個是紅色的......,0x000000是黑色的等)

  2. 如果navItem是一個動畫片段並且沒有動畫,打開它,創建四個幀,添加一個stop();到第一幀。然後,您可以添加您已粘貼的代碼:

navItem.gotoAndStop(i + 1);

如果您選擇這樣做,您應該確保navItem的nav_name可以在您創建的每一幀中到達。

我希望這可以幫助,我會更多的幫助,如果我能看到的教程...