/ / Problema con ActionScript 3 borrado de dibujo: ActionScript, gráficos, dibujo, borrado

Problema con actionscript 3 borrando dibujo - actionscript, gráficos, dibujo, borrado

Tengo una imagen basada y algunos sprites encima deel movieclip de imagen basd ... Algunos de los sprites pueden ser dibujados por el usuario usando api de gráficos en actionscript 3. Puedo dibujar cosas en los sprites pero no puedo crear un borrador como un pincel que pueda eliminar parte de los dibujos no deseados. Intento usar Alpha pero no funciona

He buscado en Google al respecto y he encontrado la solución:

1) Linebitmapstyle ... Esta solución no es la mejor, ya que mis sprites se pueden mover, por lo que si uso un estilo de línea de líneas, dibuja el píxel de la imagen al sprite, pero si el sprite mueve el píxel dibujado no cambiará.

2) El enmascaramiento tampoco puede funcionar para mí ...

¿Cuál es la mejor manera de crear el borrador?

Respuestas

3 para la respuesta № 1

Tal vez prefiera usar un mapa de bits para hacer talescosas más fáciles de manipular (a menos que necesite hacer gráficos vectoriales escalables, por supuesto). Para dibujar formas, puedes usar la API de gráficos para crear las formas.

Para hacerlo, ejemplifique un sprite "ficticio" (u otro IBitmapDrawable implementación) para crear los gráficos y luego "copiarlos" a la BitmapData el bitmapData.draw() función. De esta manera puedes, por ejemplo, dibujar con la opción. BlendMode.ERASE Para eliminar los píxeles de la forma.

Ejemplo (desde lo más alto de mi mente):

// creates a bitmap data canvas
var bitmapData:BitmapData = new BitmapData(500, 500);

// creates a bitmap display object to contain the BitmapData
addChild(new Bitmap(bitmapData));

// creates a dummy object to draw and draws a 10px circle
var brush:Sprite = new Sprite(); // note this is not even added to the stage
brush.graphics.beginFill(0xff0000);
brush.graphics.drawCircle(10, 10, 10);

// the matrix will be used to position the "brush strokes" on the canvas
var matrix:Matrix = new Matrix();

// draws a circle in the middle of the canvas
matrix.translate(250, 250);
bitmapData.draw(brush, matrix

// translates the position 5 pixels to the right to slightly erase the previously
// drawn circle creating a half moon
matrix.translate(5, 0);
bitmapData.draw(brush, matrix,null,BlendMode.ERASE);