带Scale9Grid的BitmapData

时间:2012-08-10 19:08:55

标签: flex bitmapdata skin bitmapimage scale9grid

我有Skin for SkinnableContainer的皮肤 Skin仅包含原始contentGroup和s:BitmapImage作为背景 背景图像根据宽度和高度内容拉伸 使用过的图像是带有透明区域的.png。

要创建hitarea,我使用了这个算法:
http://www.webverwirklichung.com/en/blog/programming/flex/creating-hitarea-png-image-transparent-alpha-regions-flex

一切正常,直到我开始拉伸SkinnableContainer(以及皮肤中的图像)。
我有一个scale9Grid图像。

问题是,在拉伸图像时,图像的bitmapData仍然相同(相同的宽度和高度)。因此,我需要以某种方式获取scale9Grid应用程序的图像的bitmapData。

组件的背景是图像,它有一些透明区域。只能单击图像的可见部分。图像将根据contentGroup中的内容进行拉伸。

请咨询。

1 个答案:

答案 0 :(得分:0)

如何使用BitmapData.draw()方法?

调整容器大小并应用9切片缩放(或任何适当的触发器)后:

var b:BitmapData = new BitmapData(container.width, container.height);
b.draw(container);

然后将此新位图与创建命中区域的算法一起使用。