0

我根据 ActiveTuts 的教程制作了一个网站。

这是我的代码:

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”不再工作了

4

3 回答 3

0

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

  1. 给文本颜色:navItem.nav_name.textColor = 0xCC0000; (这个是红色的……,0x000000是黑色的,等等)

  2. 如果navItem是一个movieclip并且没有动画,打开它,创建四个帧,添加一个stop();到第一帧。然后你可以添加到你粘贴的代码中:

navItem.gotoAndStop(i + 1);

如果您选择这样做,您应该确保在您创建的每一帧中都可以访问 navItem 的 nav_name。

我希望这会有所帮助,如果我能看到教程,我会更有帮助......

于 2013-04-04T14:27:44.080 回答
0

这完全取决于 NavItem 是什么。我查看了您提到的教程,我知道它是一个使用 flash ide 创建的按钮。这个按钮是来自 flash ide 的 Button 类,它有一个包含按钮状态的四帧。如果你想改变这些按钮的颜色,我建议创建四个,每个都有自己的颜色。

于 2013-04-04T11:48:05.060 回答
0

感谢您的回答。

这是我提到的教程的链接:

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

它在第二个视频中。

并且“navItem”是一个没有动画的电影剪辑>>我将尝试在其中创建四个帧,如 CGA 所说

于 2013-04-04T18:12:42.187 回答