我有一个嵌入式图像 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 - 是否可以在不将 Sprite Asset 添加到显示列表的情况下调整其大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2551014/