1.怎樣知道(或者控制)在不同類別,對同一個事件建立的監聽函式的被執行順序?
EX:MVC當中,一堆V跟M在自己的類別當中註冊同一個事件:MouseDown
2.執行成本哪個比較低?感覺根據用途會有不同的考量
a.建立監聽函式,當事件發生時更新畫面內容->占記憶體,但比較即時
b.在畫面更新之前,執行判斷式,依照相關資料確認是否有需要變更->占CPU,但畫面呈現上應該沒有差別
3.最近自己試著用MVC的架構寫東西,M和V之間的溝通用丟事件的方式處理.
因為不想要讓事件傳遞,把model的參考丟給view,這樣就可以設定View類別中的Listener去處理事件發生的後續動作.但這種情形下,它的執行順序是:先執行Listener再發事件.
簡單的實驗如下(預想的情形是1->2,結果是2->1):
package {
import flash.display.MovieClip;
import flash.events.Event;
public class Test3 extends MovieClip {
public function Test3() {
this.addEventListener("test",test);
this.dispatchEvent(new Event("test"));
trace("1.事件剛剛發出");
}
private function test(event:Event):void
{
trace("2.收到事件後觸發");
}
}
}
沒有留言:
張貼留言