我有一个名为myBitmapData的BitmapData对象。它装载了尺寸为104x104的PNG。此PNG表示透明背景上的红色圆圈。 还有一个名为myBackground的Sprite对象。我希望将红色圆圈渲染到myBackground中。
myBackground.graphics.beginBitmapFill(myBitmapData);
myBackground.graphics.drawRect(0, 0, myBitmapData.width, myBitmapData.height);
myBackground.graphics.endFill();
addChild(myBackground);
一切都很好。我在myBackground的左上方看到一个红色圆圈。
但是当我将第三行更改为
时myBackground.graphics.drawRect(0, 52, myBitmapData.width, myBitmapData.height);
并期望我的圆圈被翻译52个像素,我实际上获得了一些奇怪的东西(对我而言:)):有两个红色的半圆圈(它们形成像沙漏)。
所以,问题是:如何将myBitmapData渲染到myBackground的随机位置?
P.S。 在
的情况下myBackground.graphics.drawRect(0, 104, myBitmapData.width, myBitmapData.height);
它再次成为圆圈:)
答案 0 :(得分:4)
这是由beginBitmapFill的默认repeat = true
参数引起的。文档中有一个例子。禁用重复将无效,你只需要半圈。
有几种方法可以解决这个问题:
beginBitmapFill
。0,0
处绘制矩形,然后将该精灵移动到背景所需的位置。