2010-09-28 137 views
0

我有一個項目地圖,我需要知道鼠標移過項目的時間。我應該添加一個鼠標懸停的事件偵聽器,並將鼠標移出到每個項目(可能有很多),或者我應該添加鼠標並將偵聽器鼠標移出整個容器,並執行一些檢查以檢測目標是否具有項目?ActionScript 3中有效的事件監聽

在第二種方式中,這意味着在我將要聽的容器中輸入每個地圖塊時會發生該事件。這似乎有點毫無意義,但我聽說我應該儘可能少地添加..所以我該怎麼做?

回答

1

那麼它的優先事項。無論如何你都不會遇到性能問題。但是,在Event.ENTER_FRAME Listener中,您應該非常小心地編寫腳本,因爲這是每幀執行的。

我想你應該像上面提到的那樣將Mouse-Listner添加到項目中。由於偵聽器附加到對象/項目,當項目或對象被垃圾收集器刪除時,它將被刪除。

2

如果項目只是要做同樣的事情,那麼我可能會建議與第一個和創建一個簡單的類,你分配給對象。

package { 
    import flash.display.MovieClip; 
    import flash.events.MouseEvent; 
    public class Item extends MovieClip { 
    public function Item() { 
     this.addEventLister(MouseEvent.OVER, onMouseOver); 
     this.addEventLister(MouseEvent.OUT, onMouseOut); 
    } 
    private function onMouseOver(e:MouseEvent):Void { trace("mouse over"); } 
    private function onMouseOut(e:MouseEvent):Void {trace("mouse out");} 
    } 
}