I successfully created a menu using an array. But after researching and using other custom classes, I can’t figure out how to animate arrays. The animation is simple; I want each of the buttons fade in one at a time. Any pointers on how can I accomplish this? Note, I’m following Learning Actionscript 3 book, so I created few classes like it says in the book.
Thank you so much in advance.
/* Index */
package com {
import flash.display.MovieClip;
import flash.events.Event;
import fl.transitions.Tween;
import com.greensock.TweenLite;
import com.NavBar;
public class Index extends MovieClip {
private var _logo:MovieClip = new Logo();
private var menuData:Array = ["About", "Work", "Contact"];
public function Index():void {
_logo.x = _logo.y = 10;
this.addChild(_logo);
TweenLite.from(_logo, 1, {alpha:0});
var navBar:NavBar = new NavBar(this, menuData);
navBar.x = 187;
this.addChild(navBar);
}
}
}
/* NavBar */
package com {
import flash.display.MovieClip;
public class NavBar extends MovieClip {
private var _app:MovieClip;
private var _menuData:Array;
public function NavBar(app:MovieClip, menuData:Array) {
_app = app;
_menuData = menuData;
build();
}
private function build():void {
for (var i:uint; i < _menuData.length; i++) {
var menuBtn:MenuButton =
new MenuButton(_menuData*);
menuBtn.x = 20 + (menuBtn.width + 2) * i;
menuBtn.y = 83;
menuBtn.width = 75;
addChild(menuBtn);
}
}
}
}
/* MenuButton */
package com {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.MouseEvent;
import flash.events.Event;
import com.greensock.*;
import com.greensock.easing.*;
public class MenuButton extends MovieClip {
public var _label:TextField;
public function MenuButton (labl:String) {
_label.text = labl;
_label.mouseEnabled = false;
buttonMode = true;
useHandCursor = true;
addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, onOver, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, onOut, false, 0, true);
}
private function onClick(evt:MouseEvent):void {
trace(_label.text);
}
private function onOver(evt:MouseEvent):void {
TweenMax.to(_label, 0.5, {colorTransform:{tint:0xff0000, tintAmount:0.5}});
}
private function onOut(evt:MouseEvent):void {
TweenMax.to(_label, 0.5, {colorTransform:{tint:0x333333, tintAmount:0.5}});
}
}
}