2

我在 Starling 精灵上绘制图形,我在擦除背景上的线条时遇到了问题。在 flex 上,我使用 graphics.lineBitmapStyle()了我的背景Image作为Bitmap来源lineBitmapStyle()并在其上方画了另一条线,所以我擦除了。现在 Starling 也有同样的问题,我找不到lineBitmapStyle()使用它。

4

1 回答 1

1

您仍然可以使用经典的 Flash DisplayObject 功能,因此您可以为 Starling 对象动态创建纹理!这很简单。
创建位图:

var bitmapData:BitmapData = Bitmap(YourBitmapData);
var shape:Shape = new Shape();
var g:Graphics = shape.graphics;
g.lineStyle(10);
g.lineBitmapStyle(bitmapData);
g.moveTo(0, 0);
g.lineTo(100, 100);

现在用它创建纹理:

var textureData:BitmapData = new BitmapData(100, 100, true, 0x0);
textureData.draw(shape);

var texture:Texture = Texture.fromBitmapData(textureData);
var image:Image = new Image(texture);
addChild(image);

Texture并且Image是 Starling 框架类。

于 2013-05-07T10:36:04.947 回答