我有一个嵌入的图像 Assets (带有 scale9 网格),我试图在调整大小时获取位图数据,但如果不将其添加到显示列表中,我似乎无法做到这一点。

我试试这个:

spriteAsset.setActualSize(w,h);
spriteAsset.width = w;
bmd.draw(spriteAsset);

但是当我使用 graphics.beginBitmapFill() 绘制位图数据时,我只得到原始未拉伸(stretch)的图像。

任何指针?或者我是否需要拍摄 9 个单独的 BitmapData 图像并制作 9 个单独的位图填充?

干杯,
-乔希

最佳答案

我拍摄 scale9 Assets 的 BitmapData.draw() 快照的经验是,scale9 被丢弃,即使 Assets 已添加到显示列表中。就我而言,这是一个错误,我不知道是否有人报告过。

除了 scale9 令人失望之外,不要忘记 BitmapData.draw 可以采用矩阵参数。默认情况下它为空,表示单位矩阵(无缩放、旋转等)。要对转换后的 Assets 进行快照,您需要提供其转换矩阵...

bmd.draw(spriteAsset, spriteAsset.transform.matrix)

(抱歉,还没有仔细检查这些东西,所以 ymmv。)

关于apache-flex - 是否可以调整 SpriteAsset 的大小而不将其添加到显示列表中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2551014/

10-12 06:39