颜色转换
flash.geom.ColorTransform 类及其方法
任何显示对象都有一个属性叫作 transform ,其中包括一些不同的属性用于缩放,旋转,定位和改变影片颜色,影响颜色属性的就是 colorTransform
mySprite.transform.colorTransform
ColorTransform 对象的构造函数如下:
ColorTransform(redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier, redOffset, greenOffset, blueOffset, alphaOffset)
转换一个特殊颜色通道的公式如下,以红色通道为例:
newRed = oldRed * redMultiplier + redOffset;
[Embed(source="picture.jpg")]????????
位图(Bitmaps)
BitmapData ,没有继承自 DisplayObject,所有不能直接添加对象。
这就是为什么要有 Bitmap 类的原因, Bitmap 类几乎始终都有一个函数作为 BitmapData 实例的容器
EG:
var myBitmapData:BitmapData = new BitmapData(100, 100, false, 0xff0000);
var myBitmap:Bitmap = new Bitmap(myBitmapData);
addChild(myBitmap);
setPixel 使用24位色彩值忽略了 alpha 通道,
setPixel32 “32”版的则使用32位色彩值其中包括了透明度信息
读取和嵌入资源
一种是在动画播放时将资源读入,这就是我们所熟知的读取(loading)。另一种方法是在 SWF 编译时嵌入(embed)资源。
[Embed]元数据(metadata) 标签
[Embed(source="picture.jpg")] private var Image:Class;
现在可以使用这个变量创建一个新的资源实例,如下: var img:Bitmap = new Image();
本章重要公式
转换为十进制: trace(hexValue);
十进制转换为十六进制: trace(decimalValue.toString(16));
颜色合成:
color24 = red << 16 | green << 8 | blue;
color32 = alpha << 24 | red << 16 | green << 8 | blue;
颜色提取:
red = color24 >> 16;
green = color24 >> 8 & 0xFF;
blue = color24 & 0xFF; alpha = color32 >> 24;
red = color32 >> 16 & 0xFF; green = color32 >> 8 & 0xFF;
blue = color232 & 0xFF;
过控制点的曲线:
// xt, yt is the point you want to draw through
// x0, y0 and x2, y2 are the end points of the curve
x1 = xt * 2 – (x0 + x2) / 2;
y1 = yt * 2 – (y0 + y2) / 2;
moveTo(x0, y0);
curveTo(x1, y1, x2, y2);
没有评论:
发表评论