我有一個項目地圖,我需要知道鼠標移過項目的時間。我應該添加一個鼠標懸停的事件偵聽器,並將鼠標移出到每個項目(可能有很多),或者我應該添加鼠標並將偵聽器鼠標移出整個容器,並執行一些檢查以檢測目標是否具有項目?ActionScript 3中有效的事件監聽
在第二種方式中,這意味着在我將要聽的容器中輸入每個地圖塊時會發生該事件。這似乎有點毫無意義,但我聽說我應該儘可能少地添加..所以我該怎麼做?
我有一個項目地圖,我需要知道鼠標移過項目的時間。我應該添加一個鼠標懸停的事件偵聽器,並將鼠標移出到每個項目(可能有很多),或者我應該添加鼠標並將偵聽器鼠標移出整個容器,並執行一些檢查以檢測目標是否具有項目?ActionScript 3中有效的事件監聽
在第二種方式中,這意味着在我將要聽的容器中輸入每個地圖塊時會發生該事件。這似乎有點毫無意義,但我聽說我應該儘可能少地添加..所以我該怎麼做?
那麼它的優先事項。無論如何你都不會遇到性能問題。但是,在Event.ENTER_FRAME Listener中,您應該非常小心地編寫腳本,因爲這是每幀執行的。
我想你應該像上面提到的那樣將Mouse-Listner添加到項目中。由於偵聽器附加到對象/項目,當項目或對象被垃圾收集器刪除時,它將被刪除。
如果項目只是要做同樣的事情,那麼我可能會建議與第一個和創建一個簡單的類,你分配給對象。
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");}
}
}