Flash 平台技術的優化 十 處理畫素

2021-05-23 11:11:58 字數 1832 閱讀 3644

使用 setvector() 方法繪製畫素。

當繪製畫素時,使用 bitmapdata 類的相應方法即可進行一些簡單優化。快速繪製畫素的一種方式是使用 flash player 10 中引入的 setvector() 方法:

// image dimensions

var wdth:int = 200;

var hght:int = 200;

var total:int = wdth*hght;

// pixel colors vector

var pixels:vector.= new vector.(total, true);

for ( var i:int = 0; i< total; i++ )

// create a non-transparent bitmapdata object

var myimage:bitmapdata = new bitmapdata ( wdth, hght, false );

var imagecontainer:bitmap = new bitmap ( myimage );

// paint the pixels

myimage.setvector ( myimage.rect, pixels );

addchild ( imagecontainer );

如果使用的是較慢的方法,如 setpixel() 或 setpixel32(),請使用 lock() 和 unlock() 方法加快執行速度。在以下**中,使用了lock() 和 unlock() 方法來改進效能:

var buffer:bitmapdata = new bitmapdata(200,200,true,0xffffffff);

var bitmapcontainer:bitmap = new bitmap(buffer);

var positionx:int;

var positiony:int;

// lock update

buffer.lock();

var starting:number=gettimer();

for (var i:int = 0; i<2000000; i++)

// unlock update

buffer.unlock();

addchild( bitmapcontainer );

trace( gettimer () - starting );

// output : 670

bitmapdata 類的 lock() 方法可以鎖定影象,並防止引用該影象的物件在 bitmapdata 物件更改時進行更新。例如,如果bitmap 物件引用 bitmapdata 物件,則可以鎖定 bitmapdata 物件,對其更改後再解鎖。在 bitmapdata 物件解鎖之前,

bitmap 物件不會更改。要提高效能,請在對 setpixel() 或 setpixel32() 方法進行多次呼叫之前和之後使用此方法及 unlock()方法。呼叫 lock() 和 unlock() 可防止螢幕進行不必要的更新。

注: 如果處理的是點陣圖(而不是顯示列表)中的畫素(雙緩衝),有時該技術不會提高效能。如果位圖物件沒有引用位圖緩衝區,則使用 lock() 和 unlock() 不會提高效能。flash player 檢測到未引用緩衝區,並且位圖不會呈現在螢幕上。遍歷畫素的方法(例如 getpixel()、getpixel32()、setpixel() 和 setpixel32())可能速度很慢,特別是在移動裝置上。如果可能,請使用在一次呼叫中檢索所有畫素的方法。要讀取畫素,請使用 getvector() 方法,它比 getpixels() 方法速度快。此外,請記住,盡可能使用依賴於 vector 物件的 api,因為它們的執行速度可能更快。

優化Flash平台的效能 優化網路互動外部內容

優化flash平台的效能 優化網路互動外部內容 2010年07月21日 將應用程式分為多個 swf 檔案。移動裝置可能具有受限的網路訪問許可權。要快速載入內容,可將應用程式分為多個 swf 檔案。嘗試重用整個應用程式的 邏輯和資源。例如,考慮將乙個應用程式分為多個 swf 檔案,如下圖所示 分為多個...

優化Flash平台的效能 優化網路互動外部內容

優化flash平台的效能 優化網路互動外部內容 2010年07月21日 將應用程式分為多個 swf 檔案。移動裝置可能具有受限的網路訪問許可權。要快速載入內容,可將應用程式分為多個 swf 檔案。嘗試重用整個應用程式的 邏輯和資源。例如,考慮將乙個應用程式分為多個 swf 檔案,如下圖所示 分為多個...

Flash卡的技術入門

flash卡的硬體基礎是快閃儲存器顆粒nand,nand跟ram main memory 比,其電器特性有很大不同。nand不能支援直接寫入,必須先擦除之前的資料,然後再寫入 nand對於擦除的次數是有限制的,超過多少次之後不保證寫入的資料可以正確讀出。目前國內一線電商公司已經在帶規模使用flash...