1

我有一个 SkinnableContainer 的皮肤。
皮肤仅包含原始 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 中的内容进行拉伸。

需要一个建议,请。

4

1 回答 1

0

使用BitmapData.draw()方法怎么样?

在调整容器大小并应用 9 切片缩放(或任何适当的触发器)后,执行以下操作:

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

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

于 2012-08-10T21:29:23.323 回答