Координаты размещения bitmapData в AS3 - PullRequest
0 голосов
/ 06 апреля 2010

Я программно создал векторную графику (прямоугольник), изменил положение графики и настроил 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 ]

2 голосов
/ 06 апреля 2010

Использование

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

Таким образом, mouseX / mouseY будет локальным по отношению к цветному квадрату и, следовательно, будет дубликатом растрового изображения.

2 голосов
/ 06 апреля 2010

Я не до конца понимаю проблему или код. Может быть, это поможет:

coloredSquareBitmap.draw(coloredSquare, coloredSquare.transform.concatenatedMatrix);
2 голосов
/ 06 апреля 2010

Используйте матрицу преобразования квадрата (которая также содержит перевод) как второй параметр draw() метода

, например

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