2012年6月18日 星期一

雜記:問題暫存(0622更新)

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.收到事件後觸發");
        }
    }
  
}

沒有留言:

張貼留言