Как использовать BitmapData.fillRect ()? - PullRequest
2 голосов
/ 08 февраля 2012

Когда я использую его, единственное, что заполняется, это белый прямоугольник, параметр не имеет значения.Вот что я делаю:

var map:Bitmap = new Bitmap (new BitmapData(200,200))
map.bitmapData.fillRect(new Rectangle(0,0,100,100),0xFF0000)

Прямоугольник 100x100 добавляется к растровому изображению, но это всегда белая форма.Я хочу, чтобы он был красным, как установлено в параметре (0xFF0000).

Ответы [ 5 ]

4 голосов
/ 08 февраля 2012

Цветовой аргумент должен быть в формате ARGB, означая, что первое значение является альфа.Не уверен, что произойдет, когда вы отправите 3-байтовое значение вместо 4. Попробуйте 0xFFFF0000.

Надеюсь, это поможет!

2 голосов
/ 08 февраля 2012
map.bitmapData.fillRect(new Rectangle(0,0,100,100),0xFFFF0000)
1 голос
/ 08 февраля 2012

Обнаружил ответ уже.Я разбирал параметр RGB для цвета, в то время как я должен был передать ARGB.

Таким образом, поскольку я хочу красный, я должен написать 0xFFFF0000 вместо 0xFF0000

var map:Bitmap = new Bitmap (new BitmapData(200,200))
map.bitmapData.fillRect(new Rectangle(0,0,100,100),0xFFFF0000)
0 голосов
/ 01 ноября 2012

Если вы используете непрозрачные BitmapData, вы можете определить цвет с помощью обычного шестнадцатеричного числа.

var map:Bitmap = new Bitmap (new BitmapData(200,200,false))
map.bitmapData.fillRect(new Rectangle(0,0,100,100),0xFF0000)

Но если вы используете прозрачные BitmapData, вы должны использовать формат ARGB:

var map:Bitmap = new Bitmap (new BitmapData(200,200))
map.bitmapData.fillRect(new Rectangle(0,0,100,100),0xFFFF0000)
0 голосов
/ 08 февраля 2012
import gs.TweenMax;
import fl.transitions.easing.*;
import flash.display.Bitmap;
import flash.display.BitmapData;
var container:Sprite = new Sprite();
var b:Box = new Box();
b.x = b.y = 0;
container.addChild(b);
var bmd:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
var bmp:Bitmap = new Bitmap(bmd);
this.addChild(bmp);
TweenMax.to(b, 1.5, {x: 525, y: 375, ease: Regular.easeOut, onComplete: doComplete});
function doComplete():void
{
    this.removeEventListener(Event.ENTER_FRAME, drawAnimation);
}
this.addEventListener(Event.ENTER_FRAME, drawAnimation);
function drawAnimation(evt:Event):void
{
    bmd.fillRect(bmd.rect, 0);
    bmd.draw(container);
}

bmd.fillRect (bmd.rect, 0);

в основном заполняет область объекта BitmapData прозрачностью, используя размер прямоугольника BitmapData дляопределить область для заполнения.ОЧЕНЬ удобный трюк, который нужно знать при работе с BitmapData.Если вы возьмете эту строку кода, вы увидите, что поле все еще перемещается, но оставляет за собой «полосы».

для получения дополнительной информации вы можете перейти здесь
http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000787.html

...