OLDER ENTRY: 我想将Sprite.graphics转换为bitmapData,因为我有一个drawTool,它允许用户绘制线条,我认为它们位于Sprite.grahpics中。
我需要将这些行转换为bitmapdata,因为这允许我稍后变形,但我无法使用此
Bitmapdata.draw(Sprite.graphics);
仅使用Sprite而不是Sprite.graphics不会显示任何结果= \ 需要帮助!
答案 0 :(得分:2)
如果您只想绘制某个部分和(0,0)以外的原点,请使用矩阵。 Adobe文档中有很多关于此的内容,或者是一个很好的例子:
答案 1 :(得分:0)
绘图时仅使用graphics
。实际的Sprite
对象包含您想要的内容,因此按照惯例,只需执行以下操作:
BitmapData.draw(Sprite);
虽然是一个文字的例子:
var mySprite:Sprite = new Sprite();
// add lines etc using mySprite.graphics
var myBitmapData:BitmapData = new BitmapData(mySprite.width, mySprite.height);
myBitmapData.draw(mySprite);
答案 2 :(得分:0)
我认为,您还没有完全理解使用情况BitmapData.draw()
。
BitmapData.draw()
可以使用All DisplayObject(Sprite,MovieClip,Shape,Text,Video ...)绘图。因为他们有一个IBitmapDrawable。(更多信息参考adobe文档是最好的老师。)
如果您想要实施Paint Board。参考下面的代码。非常简单的油漆板。但有些人会帮助你。
尝试复制&糊。强>
import flash.display.Sprite;
import flash.events.Event;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.events.MouseEvent;
var isDraw:Boolean = false;
var brush:Sprite =new Sprite();
brush.graphics.beginFill(0x0000ff);
brush.graphics.drawCircle(0,0,5);
brush.graphics.endFill();
var canvasData:BitmapData = new BitmapData(600,400, false);
var canvas:Bitmap = new Bitmap(canvasData);
addChild(canvas);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onDrawStart);
stage.addEventListener(MouseEvent.MOUSE_UP, onDrawStop);
stage.addEventListener(Event.ENTER_FRAME, render);
function onDrawStart(e:MouseEvent):void
{
isDraw = true;
}
function onDrawStop(e:MouseEvent):void
{
isDraw = false;
}
function render(e:Event):void
{
if(!isDraw) return;
brush.x = mouseX;
brush.y = mouseY;
canvasData.draw(brush,brush.transform.matrix);
}