我经历了几个循环来构建一个32 x 32的块 在我的真实例子中,颜色各不相同,但在测试中,甚至简化我无处可去
var tempWidth:int = currentTileSel.width;
var tempHeight:int = currentTileSel.height;
var newbit:Bitmap = null;
var myBitmapData:BitmapData = new BitmapData(tempWidth, tempHeight,true,0x000000);
var drawCount:int = 0;
for(var i:int = 0; i< tempHeight; i++)
{
for(var j:int = 0; j < tempWidth; j++)
{
var setColor:uint = pixelArray[drawCount].colorfill;
myBitmapData.setPixel32(j,i,0x000000);
drawCount++;
}
}
///*
currentTileSel.graphics.clear();
currentTileSel.graphics.lineStyle(.25,0xCCCCCC,.5,false);
currentTileSel.graphics.beginBitmapFill(myBitmapData);
currentTileSel.graphics.drawRect(0,0,tempWidth,tempHeight);
currentTileSel.graphics.endFill();
currentTileSel.bitmapHolder = myBitmapData;
//*/
newbit = new Bitmap(myBitmapData);
gridLoader.addChild(newbit);
我认为这会逐像素地生成黑色位图,但是当我将它作为位图添加到屏幕上时,我在bitmapFill上什么都没有得到任何结果。
我做错了什么?非常感谢提前!
答案 0 :(得分:2)
你的问题就在这一行:
myBitmapData.setPixel32(j,i,0x000000);
在这里,您将透明度设置为0。 尝试:
myBitmapData.setPixel32(j,i,0xFF000000);
答案 1 :(得分:1)
您正在绘制透明的黑色像素。而不是0x000000,它应该是0xff000000。
myBitmapData.setPixel32(j,i,0xff000000);
或使用setPixel(x,y,color);