Получать уведомления об изменениях в Flex Bitmap или BitmapData? - PullRequest
0 голосов
/ 29 сентября 2010

Как во Flex можно подключить переменную растрового изображения или растрового изображения, чтобы функция уведомлялась всякий раз, когда данные растрового изображения изменились (изменился пиксель или был добавлен фильтр)?

Я пытался настроить привязку, но она не работает.

Должен быть способ сделать это, потому что я могу привязать mx: Image к растровому изображению через атрибут 'source', и отображаемое изображение обновляется все время, когда я изменяю растровое изображение.Как Flex это делает?Это вслепую перерисовывает растровое изображение в каждом кадре, или это умный и только перерисовывает, когда растровое изображение изменяется?Если так, как он узнает, когда растровое изображение изменяется?

1 Ответ

0 голосов
/ 29 сентября 2010

Это всего лишь полуобразованное предположение, без каких-либо испытаний, поэтому возьмите его с солью.

Когда Flex связывает атрибут источника Image, значение .source имеет тип BitmapAsset.

BitmapAsset имеет свойство .bitmapData, которое является ссылкой на растровое изображение, о котором идет речь.

Я ожидаю, что связывание, выполненное Flex, противоречит этому свойству .bitmapData.

Я не вижу причин, по которым вы тоже не сможете этого сделать. Я думаю, что вам придется выполнить небольшую круговую работу, так как вам нужно будет создать экземпляр BitmapAsset и заполнить его BitmapData, на котором вы хотите сохранить вкладки, а затем привязать к свойству .bitmapData объекта BitmapAsset.

Предполагая, что переменная называется 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
}
...