var subimage = new Bitmap();
subimage.bitmapData = new BitmapData(25, 25, true, 0);
addChild(subimage);
从我读过的所有内容来看,这应该是透明的。我看到一个大黑方块。什么可能导致这种情况?
答案 0 :(得分:14)
使用此
new BitmapData(25, 25, true, 0x00000000);
而不是
new BitmapData(25, 25, true, 0);
0xFF000000为黑色(0x000000),alpha等于1
0x00000000是黑色(0x000000),alpha等于0
这是一个很好的解释颜色和& alpha工作:http://myflex.wordpress.com/2007/09/07/about-hex-color-codes-in-flex-as3/
//编辑:
DennisKrøger和strille是对的,0x00000000 == 0。 看起来问题出在其他地方,而不是在你粘贴的代码中。
答案 1 :(得分:3)
ActionScript使用32位十六进制数字来表示具有透明度的颜色值。作为32位变量的ARGB颜色由4组每组8位/或每组2个十六进制指定:
二进制:AAAAAAAA RRRRRRRR GGGGGGGG BBBBBBBB
十六进制:AA RR GG BB
A代表α值(透明度),R是rd,G是绿色,B是蓝色。每组定义每个颜色通道的强度,A是alpha,R是红色,G是绿色,B是蓝色。 alpha通道上的全强度表示没有alpha(FF),没有强度(00)表示完全alpha。因此透明像素颜色值为0x00rrggbb。
答案 2 :(得分:3)
您可以创建BitmapData或将Bitmap传递给新{{3}}对象的构造函数,也可以在创建后通过引用对其进行编辑。这两个选项都有效:
package
{
//Imports
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
//Document Class
public class Main extends Sprite
{
//Constructor
public function Main()
{
var bmpData:BitmapData = new BitmapData(200, 200, true, 0x5500FF00);
var bmp:Bitmap = new Bitmap(bmpData);
addChild(bmp);
var bmp2:Bitmap = new Bitmap();
bmp2.bitmapData = new BitmapData(200, 200, true, 0x55FF0000);
bmp2.x = bmp2.y = 200;
addChild(bmp2);
}
}
}
答案 3 :(得分:2)
没有意义:我尝试了以下代码:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
public class TestBitMap extends Sprite
{
public function TestBitMap() {
var imageYellow:Bitmap = new Bitmap(new BitmapData(100, 100, true, 0xFFFFFF00));
var imageTransparent:Bitmap = new Bitmap(new BitmapData(100, 100, true, 0));
var imageSemiTransparent:Bitmap = new Bitmap(new BitmapData(100, 100, true, 0x99000000));
imageTransparent.x = 25;
imageTransparent.y = 25;
imageSemiTransparent.x = 50;
imageSemiTransparent.y = 50;
addChild(imageYellow);
addChild(imageTransparent);
addChild(imageSemiTransparent);
}
}
}
我有一个黄色的盒子,上面有一个半透明的黑盒子。 “imageTransparent”完全不可见。
我还首先尝试创建BitMap,然后更改bitmapData。没有区别,仍然是看不见的。
San.chez:0等于0x00000000,无论如何。它是一个无符号整数,ActionScript并没有神奇地改变它。你的链接很好。