我以编程方式创建了一个矢量图形(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));
}
答案 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);