2009年11月24日 星期二

多圖 BitmapFileMaterial 讀取方式

上次提到了 BitmapFileMaterial load 的時候使用一個 array,利用事件傳遞的方式來檢測什麼時候所有的圖片讀取完畢,好進行下一個有前後相依的步驟。

結果,今天 trace 了一下 BitmapFileMaterial 這個類別,發現原來它早就有把類似的機制作在裡面了,在BitmapFileMaterial.as 的這行…

        static public var callback :Function;

於是,要讀取一連串的圖檔就變的更容易了…

        public function init():void
        {
            BitmapFileMaterial.callback = loadComplete;
            floorMaterial = new BitmapFileMaterial("assets/grassTexture.jpg");
            bodyMaterial = new BitmapFileMaterial("assets/FocusBody.jpg");
            wheelMaterial = new BitmapFileMaterial("assets/FocusWheel.jpg");
            boxMaterial = new BitmapFileMaterial("assets/box.jpg");
        }

        private function loadComplete():void
        {
            BitmapFileMaterial.callback = null;
            ///......
        }


雖然如此,但使用上也要特別小心,因為 BitmapFileMaterial.callback 是 public static 的,意即所有其它程序也是有可能在你讀取一堆圖檔的時候,使用同樣的方式設定了 callback 的函式,那就會出錯嘍(潛藏的BUG)。

沒有留言:

更高效處理 micro second 的方式

更高效處理 micro second 的方式…  以 STM32 為例… __IO unsigned long sys_tick = 0; void SysTick_Handler(void) {     HAL_IncTick();     sys_tick += (SysTi...