在Flex中,如何挂钩到位图或位图数据变量,以便每当位图的数据发生变化(像素已更改或已添加过滤器)时都会通知函数?
我尝试设置绑定但不起作用。
必须有办法,因为我可以通过'source'属性将mx:Image绑定到位图,并且当我修改位图时,显示的图像会一直更新。 flex如何做到这一点?它是否盲目地重绘每一帧的位图,还是它很聪明,只在位图发生变化时重绘?如果是这样,它如何知道位图何时发生变化?
答案 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
}