是否有更好的方法来设置有很多导航的Flash项目不是必须这样做?:最佳实践3
bottomNav.contact_btn.addEventListener(MouseEvent.CLICK, changeContent);
bottomNav.portfolio_btn.addEventListener(MouseEvent.CLICK, changeContent);
bottomNav.news_btn.addEventListener(MouseEvent.CLICK, changeContent);
bottomNav.inspiration_btn.addEventListener(MouseEvent.CLICK, changeContent);
bottomNav.home_btn.addEventListener(MouseEvent.CLICK, changeContent);
secondaryNav.about_btn.addEventListener(MouseEvent.CLICK, changeContent);
secondaryNav.services_btn.addEventListener(MouseEvent.CLICK, changeContent);
secondaryNav.home_btn.addEventListener(MouseEvent.CLICK, changeContent);
secondaryNav.inspiration_btn.addEventListener(MouseEvent.CLICK, changeContent);
secondaryNav.inspiration_archive_btn.addEventListener(MouseEvent.CLICK, changeContent);
secondaryNav.portfolio_showcase_btn.addEventListener(MouseEvent.CLICK, changeContent);
secondaryNav.portfolio_archive_btn.addEventListener(MouseEvent.CLICK, changeContent);
如果没有,总有一些动画之间的瞬间你想要发生的最后一件事是让别人点击一个按钮,并在两个场景之间的美丽擦拭中间点击另一个功能。你最终(或者至少我是)无数的错误和一个生气的客户。
如何暂停所有这些监听器而不在每个其他函数的末尾添加一个函数来临时禁用它们?
请,如果有人有魔术练习,我很乐意听到它。
在问候我怎么做,我已经写了这样的事情:
function suspendBtns():void
{
secondaryNav.inspiration_archive_btn.removeEventListener(MouseEvent.CLICK, changeContent);
secondaryNav.portfolio_showcase_btn.removeEventListener(MouseEvent.CLICK, changeContent);
secondaryNav.portfolio_archive_btn.removeEventListener(MouseEvent.CLICK, changeContent);
}
,并会增加suspendBtns()
;到在剪辑之间转换的每个函数的末尾。
然后显然是另一个函数enactBtns()
或类似的东西。
我试过一次只添加一个事件监听器的阶段:
,然后函数会找到的名称BTN这样的:
function doFunction(e:Event):void{
switch(e.target.name){
case"home_btn":
doThis();
break;
case"away_btn":
doThat();
break;
}
}
等。这并没有那么好,它感觉好像我必须点击每个按钮两次才能使它工作。
而我仍然不得不暂停事件监听器之间的行动。
来自每个人的真棒建议。这是我正在寻找的那个。我什至没有关于.mouseEnabled paramater的事情。 所以总结.. var btnArray:Array = new Array(btn1,btn2,btn3);函数suspendBtns():void { for(var i:int = 0; i
2009-10-04 21:58:40