AS3中bitmapData的放置坐标

时间:2010-04-06 15:33:26

标签: actionscript-3 bitmapdata

我以编程方式创建了一个矢量图形(rect),重新定位了图形,并设置了一个MOUSE_MOVE eventListener来使用getPixel()跟踪图形的颜色信息。但是,bitmapData位于舞台的0,0,我不知道如何移动它以使其与图形的位置匹配。

var coloredSquare:Sprite = new GradientRect(200, 200, 0xFFFFFF, 0x000000, 0xFF0000, 0xFFFF00);
coloredSquare.x = 100;

addChild(coloredSquare);

var coloredSquareBitmap:BitmapData = new BitmapData(coloredSquare.width, coloredSquare.height, true, 0);
coloredSquareBitmap.draw(coloredSquare);

coloredSquare.addEventListener(MouseEvent.MOUSE_MOVE, readColor);
function readColor(evt:Event):void
    {
    var pixelValue:uint = coloredSquare.getPixel(mouseX, mouseY);
    trace(pixelValue.toString(16));
    }

3 个答案:

答案 0 :(得分:2)

使用square的变换矩阵(也包含翻译)作为draw()方法的第二个参数

e.g。

coloredSquareBitmap.draw(coloredSquare,coloredSquare.transform.matrix);

答案 1 :(得分:2)

使用

var pixelValue:uint = coloredSquare.getPixel(coloredSquare.mouseX, coloredSquare.mouseY);

这样,mouseX / mouseY将是彩色方块的本地,因此位图重复。

答案 2 :(得分:2)

我不完全理解问题或代码。也许这会有所帮助:

coloredSquareBitmap.draw(coloredSquare, coloredSquare.transform.concatenatedMatrix);