I’m trying to develop a xml drop down menu in Flash that behaves like a standard CSS/JavaScript menu. What I currently have (I think) is a movieclip (subNav) that holds four other movieclips (navBar). These four movieclips hold the sub menu selections. The problem I’m running into is that when the sub menu drops down, as soon as I roll off one of the four selections, the sub menu moves back up.
What am I missing or doing wrong?
import flash.display.MovieClip;
import caurina.transitions.Tweener;
import com.utils.CallArg;
import flash.utils.describeType;
stop();
var menuData:XML;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
//loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
loader.load(new URLRequest("menu.xml"));
function onComplete(evt:Event):void{
menuData = new XML(evt.target.data);
var menuCount:Number = menuData.Nav.subnav.length();
var subNav:MovieClip = new MenuContainer();
addChild(subNav);
var navBar:MovieClip = new MovieClip();
//addChild(navBar); //Container for button
for(var i:Number = 0; i < menuCount; i++)
{
var txtFld:TextField = new TextField();
txtFld.textColor = 0x000000;
txtFld.selectable = false;
txtFld.mouseEnabled = false;
txtFld.text = "hello" + i;
var linkMC:MovieClip = new LinkContainer();
linkMC.y = i*30;
//txtFld.y = i*30;
navBar.addChild(linkMC);
linkMC.addChild(txtFld);
linkMC.addEventListener(MouseEvent.MOUSE_OVER, CallArg.create(onMouseOver, txtFld.text));
}
subNav.y = -150;
subNav.addChild(navBar);
subNav.mouseChildren = true;
//navBar.addChildAt(subNav, 0);
//addChild(navBar);
navBar.parent.addEventListener(MouseEvent.MOUSE_OUT, CallArg.create(moveUp, subNav));
var drop:MovieClip = new Drop();
addChild(drop);
drop.addEventListener(MouseEvent.MOUSE_OVER, dropDown);
function dropDown(evt:MouseEvent):void{
evt.target.buttonMode = true;
Tweener.addTween(subNav, {y:20, time:.5, transition:"linear"});
//trace("drop");
}
function onMouseOver(evt:MouseEvent, txt):void{
evt.currentTarget.buttonMode = true;
evt.target.alpha = 0.4;
trace(txt);
}
//trace(describeType(txtFld));
}
function moveUp(evt:MouseEvent, clip):void{
evt.target.buttonMode = true;
Tweener.addTween(clip, {y:-120, time:0.5, transition:"linear"});
trace("navBar");
}
Thanks