2010-09-29 24 views
0

在Flex中,如何鉤入位圖或bitmapdata變量,以便在位圖數據發生更改(像素已更改或添加了過濾器)時通知函數?獲取Flex位圖或BitmapData變更的通知?

我試着設置綁定,但它不起作用。

必須有辦法做到這一點,因爲我可以通過'source'屬性將mx:Image綁定到位圖,並且當我修改位圖時,顯示的圖像始終會更新。 Flex如何做到這一點?它是否在每一幀都盲目地重繪位圖,還是它很聰明,只有在位圖變化時才重繪?如果是這樣,它怎麼知道位圖何時改變?

+0

當你嘗試綁定時,你綁定了什麼?你是否可以包含該代碼,儘管它不起作用? – 2010-09-29 18:52:15

回答

0

這只是一個半受教育的猜測,沒有測試背後,所以拿一些鹽。

當Flex綁定Image的源屬性時,.source的值爲BitmapAsset類型。

BitmapAsset有一個.bitmapData屬性,它是對所討論的位圖的引用。

我希望由Flex完成的綁定與.bitmapData屬性相反。

我看不出有什麼理由不應該這樣做。但是,我認爲您必須先做一些小小的循環工作,因爲您必須創建BitmapAsset實例並使用BitmapData填充要保留的選項卡,然後綁定到BitmapAsset對象的.bitmapData屬性。

假設一個叫做'bitmapData'的變量,它是BitmapData的一個實例,我認爲下面的內容應該可以工作。

var bitmapAsset:BitmapAsset = new BitmapAsset(bitmapData); 

var bitmapDataChangeWatcher:ChangeWatcher = BindingUtils.bindSetter(handleChangeToBitmapData, bitmapAsset, "bitmapData"); 

private function handleChangeToBitmapData(data:BitmapData):void 
{ 
    // Handle change to the bitmap data 
}