2012、10、06听课记录

                                                                      图形处理

 

                   第十一课    图形处理

 

 

 

主要内容:

 

滤镜

 

矩阵变换

 

BitmapData类

 

练习

 

作业

 

精确碰撞检测

 

 

 

 

 

 

 

滤镜:

 

flash.filters包

 

BitmapFilter类:所有图像滤镜效果的基类

 

flash.filters

 

public class BitmapFilter

 

继承 BitmapFilter è Object

 

子类 BevelFilter, BlurFilter, ColorMatrixFilter, ConvolutionFilter, DisplacementMapFilter, DropShadowFilter, GlowFilter, GradientBevelFilter, GradientGlowFilter, ShaderFilter

 

 

 

滤镜—BlurFilter类(模糊滤镜)

 

属性

 

blurX (x轴方向模糊的像素数量 = 4)

 

blurY (y轴方向模糊的像素数量 = 4)

 

quality (执行模糊处理的次数0-15,默认 = 1)

 

方法

 

构造函数:

 

BlurFilter(blurX:Number = 4.0, blurY:Number = 4.0, quality:int = 1)

 

clone():BitmapFilter——返回此滤镜对象的副本

 

 

 

滤镜—DropShadowFilter类(投影)

 

distance (从现实对象到阴影的偏移像素数量 = 4)

 

angle (光源角度 = 45度)

 

color (阴影颜色 从0x000000 到 0xFFFFFF 默认=0)

 

alpha (透明度,从0到1,默认 = 1)

 

blurX (x轴方向模糊的像素数量 = 4)

 

blurY (y轴方向模糊的像素数量 = 4)

 

strength (阴影的长度,从0到255,默认 = 1)

 

quality  (模糊处理次数,1—15,默认 = 1)

 

inner (Boolean值,阴影是否应用于显示对象内部,默认false)

 

knockout  (Boolean值,原显示对象是否透明)

 

hideObject (Boolean值,是否隐藏原现实对象)  

 

方法

 

构造函数:DropShadowFilter(distance:Number = 4.0, angle:Number = 45,

 

                         color:uint = 0, alpha:Number = 1.0, blurX:Number = 4.0,

 

                            blurY:Number = 4.0, strength:Number = 1.0, quality:int = 1,
                       inner:Boolean = false, knockout:Boolean = false, hideObject:Boolean = false)

 

clone():BitmapFilter——返回此滤镜对象的副本

 

 

 

滤镜—BevelFilter类(斜角):

 

属性

 

distance (从显示对象到阴影的偏移像素数量 = 4)

 

angle (光源角度 = 45度)

 

higglightColor (高亮区影颜色 从0x000000 到 0xFFFFFF 默认=0xFFFFFF)

 

highlightAlpha (高亮区透明度,从0到1,默认 = 1)

 

shadowColor (高亮区影颜色 从0x000000 到 0xFFFFFF 默认=0)

 

shadowAlpha (高亮区透明度,从0到1,默认 = 1)

 

blurX (x轴方向模糊的像素数量 = 4)

 

blurY (y轴方向模糊的像素数量 = 4)

 

strength (阴影的长度,从0到255,默认 = 1)

 

quality  (模糊处理次数,1—15,默认 = 1)

 

type (“inner”,“outer”,“full”,默认“inner”)

 

knockout  (Boolean值,原显示对象是否透明) 

 

方法

 

构造函数:BevelFilter(distance:Number = 4.0, angle:Number = 45, highlightColor:uint = 0xFFFFFF,

 

                                    highlightAlpha:Number = 1.0, shadowColor:uint = 0x000000, shadowAlpha:Number = 1.0,

 

                                    blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1,

 

                                    type:String = "inner", knockout:Boolean = false)

 

clone():BitmapFilter——返回此滤镜对象的副本

 

 

 

 

 

滤镜—GlowFilter类(发光):

 

属性

 

color (发光效果的颜色 从0x000000 到 0xFFFFFF 默认=0xFF0000)

 

alpha (发光效果的透明度,从0到1,默认 = 1)

 

blurX (x轴方向模糊的像素数量 = 4)

 

blurY (y轴方向模糊的像素数量 = 4)

 

strength (发光效果延伸的长度,从0到255,默认 = 2)

 

quality  (模糊处理次数,1—15,默认 = 1)

 

inner (Boolean值,发光效果是否应用于显示对象内部,默认false)

 

knockout  (Boolean值,原显示对象是否透明) 

 

方法

 

构造函数:GlowFilter(color:uint = 0xFF0000, alpha:Number = 1.0,

 

                             blurX:Number = 6.0, blurY:Number = 6.0, strength:Number = 2,

 

                             quality:int = 1, inner:Boolean = false, knockout:Boolean = false)

 

clone():BitmapFilter——返回此滤镜对象的副本

 

 

 

矩阵变形

 

flash.geom包 (geom几何)

 

Matrix 类

 

Point 类

 

Rectangle  类

 

Transform 类

 

ColorTransform 类

 

 

 

矩阵变形——Matrix

 

属性

 

a :缩放或旋转图像时影响像素沿 x 轴定位的值

 

b :旋转或倾斜图像时影响像素沿 y 轴定位的值

 

c :旋转或倾斜图像时影响像素沿 x 轴定位的值

 

d :缩放或旋转图像时影响像素沿 y 轴定位的值

 

tx :沿 x 轴平移每个点的距离

 

ty :沿 y 轴平移每个点的距离

 

方法:

 

构造函数 Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)

 

clone():Matrix  

 

rotate(angle:Number):void 对 Matrix 对象应用旋转转换。

 

scale(sx:Number, sy:Number):void 对矩阵应用缩放转换。

 

translate(dx:Number, dy:Number):void  沿 x 和 y 轴平移矩阵, 由 dx 和 dy 参数指定

 

 

 

Point

 

属性

 

length:Number 从 (0,0) 到此点的线段长度

 

x:Number

 

y:Number

 

构造函数 Point(x:Number = 0, y:Number = 0)

 

方法:

 

distance(pt1:Point, pt2:Point):Number

 

offset(dx:Number, dy:Number):void

 

 

 

 

 

Rectangle

 

属性

 

x

 

y

 

width

 

height

 

构造函数: Rectangle(x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0)

 

方法

 

containsPoint(point:Point):Boolean

 

containsRect(rect:Rectangle):Boolean

 

 

 

 

 

Transform

 

属性

 

colorTransform:ColorTransform

 

matrix:Matrix

 

无构造函数

 

 

 

 

 

ColorTransform

 

属性

 

redMultiplier / redOffset

 

greenMultiplier / greenOffset

 

blueMultiplier / blueOffset

 

alphaMultiplier / alphaOffset -255 到 255 之间的数字

 

新红色值 = (旧红色值 * redMultiplier) + redOffset

 

新绿色值 = (旧绿色值 * greenMultiplier) + greenOffset

 

新蓝色值 = (旧蓝色值 * blueMultiplier) + blueOffset

 

新 Alpha 值 = (旧 Alpha 值 * alphaMultiplier) + alphaOffset

 

 

 

color;

 

 

 

 

 

ColorTransform构造函数

 

ColorTransform(redMultiplier:Number = 1.0, greenMultiplier:Number = 1.0, blueMultiplier:Number = 1.0, alphaMultiplier:Number = 1.0, redOffset:Number = 0, greenOffset:Number = 0, blueOffset:Number = 0, alphaOffset:Number = 0)

 

参数

 

redMultiplier:Number (default = 1.0) — 红色乘数的值,在 0à 1

 

greenMultiplier:Number (default = 1.0) — 绿色乘数的值,在 0 à1

 

blueMultiplier:Number (default = 1.0) — 蓝色乘数的值,在 0à1

 

alphaMultiplier:Number (default = 1.0) — Alpha 透明度乘数值,在 0 à1

 

redOffset:Number (default = 0) — 红色通道值偏移量,-255 到 255

 

greenOffset:Number (default = 0) — 绿色通道值偏移量,-255 到 255

 

blueOffset:Number (default = 0) — 蓝色通道值偏移量,-255 到 255

 

alphaOffset:Number (default = 0) — Alpha 透明度通道值偏移量,-255à 255

 

 

 

 

 

BitmapData

 

Bitmap

 

属性:

 

width:int,

 

height:int;

 

transparent:Boolean

 

fillColor:uint

 

构造函数:BitmapData(width:int, height:int, transparent:Boolean = false, fillColor:uint = 0xFFFFFFFF)

 

 

 

 

 

BitmapData——方法

 

applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void

 

draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void

 

getPixel(x:int, y:int):uint  0xFFFFFF

 

getPixel32(x:int, y:int):uint  0xFFFFFFFF

 

setPixel(x:int, y:int, color:uint):void  0xFFFFFF

 

setPixel32 () 0xFFFFFFFF

 

hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean

 

 

 

Draw方法的属性

 

source:IBitmapDrawable  

 

matrix:Matrix = null,

 

colorTransform:ColorTransform = null,

 

blendMode:String = null,

 

clipRect:Rectangle = null,

 

smoothing:Boolean = false

 

 

 

精确碰撞检测 

 

基于BitmapData 之 hitTest 方法的碰撞检测

 

参数说明:

 

firstPoint:Point BitmapData 图像的左上角的位置

 

firstAlphaThreshold:uint最小的 Alpha 通道值

 

secondObject:Object  一个 Rectangle、Point、Bitmap 或 BitmapData 对象

 

secondBitmapDataPoint:Point = null,定义第二个 BitmapData 对象中的一个像素位置

 

secondAlphaThreshold:uint = 1第二个 BitmapData 对象中最小的 Alpha 通道值

posted @ 2012-11-04 21:31  泡沫小灰灰  阅读(157)  评论(0编辑  收藏  举报