当我使用它时,唯一填充的是白色矩形,与参数无关。 这就是我的工作:
var map:Bitmap = new Bitmap (new BitmapData(200,200))
map.bitmapData.fillRect(new Rectangle(0,0,100,100),0xFF0000)
将100x100矩形添加到位图,但它始终为白色形状。我希望它是红色的,如参数(0xFF0000)中设置的那样。
答案 0 :(得分:4)
颜色参数应为ARGB格式,表示第一个值为alpha。不确定当发送3字节值而不是4时会发生什么。请尝试使用0xFFFF0000。
希望有所帮助!
答案 1 :(得分:2)
map.bitmapData.fillRect(new Rectangle(0,0,100,100),0xFFFF0000)
答案 2 :(得分:1)
已经发现了答案。我正在解析颜色的RGB参数,而我应该传递ARGB。
因此,因为我想要红色,我应该写0xFFFF0000而不是0xFF0000
var map:Bitmap = new Bitmap (new BitmapData(200,200))
map.bitmapData.fillRect(new Rectangle(0,0,100,100),0xFFFF0000)
答案 3 :(得分:0)
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时,一个非常方便的小技巧。如果你拿出这行代码,你会看到盒子仍在移动,但在它后面留下“条纹”。
有关详情,请访问here
http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000787.html
答案 4 :(得分:0)
如果使用不透明的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)