获得Flex Bitmap或BitmapData中的更改通知?

时间:2010-09-29 17:13:13

标签: flex flash binding bitmap bitmapdata

在Flex中,如何挂钩到位图或位图数据变量,以便每当位图的数据发生变化(像素已更改或已添加过滤器)时都会通知函数?

我尝试设置绑定但不起作用。

必须有办法,因为我可以通过'source'属性将mx:Image绑定到位图,并且当我修改位图时,显示的图像会一直更新。 flex如何做到这一点?它是否盲目地重绘每一帧的位图,还是它很聪明,只在位图发生变化时重绘?如果是这样,它如何知道位图何时发生变化?

1 个答案:

答案 0 :(得分:0)

这只是一种半教育的猜测,没有任何测试背后,所以带点盐。

当Flex绑定Image的源属性时,.source的值属于BitmapAsset类型。

BitmapAsset具有.bitmapData属性,该属性是对相关位图的引用。

我希望Flex完成的绑定是针对.bitmapData属性的。

我也没有看到你为什么不能这样做的原因。不过,我认为你必须做一些循环工作,因为你必须创建一个BitmapAsset实例并用你想要保持标签的BitmapData填充它,然后绑定到.bitmapData对象的BitmapAsset属性。

假设一个名为'bitmapData'的var,它是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
}