是否有更好的方法來設置有很多導航的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