如何给物体描边
noxss (2009-10-23 00:58:01)
看到有人问了,就发上来。。。因为FLASH的绘图是2D滴。。。所以很容易实现,只要加上一个GlowFliter就可以了。。。^_,^
比如:
viewport.filters = [new GlowFilter(0x000000, 1, 4, 4, 10)];
就行了!呵呵,简单吧!
看看ADOBE大神是怎么讲关于GlowFilter的:
GlowFilter
包 flash.filters
类 public final class GlowFilter
继承 GlowFilter BitmapFilter Object
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
使用 GlowFilter 类可以对显示对象应用发光效果。 有多个用于发光样式的选项,包括内侧发光或外侧发光以及挖空模式。 在投影滤镜的 distance 和 angle 属性设置为 0 时,发光滤镜与投影滤镜极为相似。 您可以将滤镜应用于任何显示对象(即,从 DisplayObject 类继承的对象),例如 MovieClip、SimpleButton、TextField 和 Video 对象,以及 BitmapData 对象。
滤镜的具体使用取决于要应用滤镜的对象:
若要对显示对象应用滤镜,请使用 filters 属性(继承自 DisplayObject)。 设置对象的 filters 属性不会修改相应的对象,而清除 filters 属性可以删除相应的滤镜。
若要对 BitmapData 对象应用滤镜,请使用 BitmapData.applyFilter() 方法。 对 BitmapData 对象调用 applyFilter() 会取得源 BitmapData 对象和滤镜对象,并最终生成一个过滤图像。
如果对显示对象应用滤镜,显示对象的 cacheAsBitmap 属性将设置为 true。 如果清除所有滤镜,将恢复 cacheAsBitmap 的原始值。
此滤镜支持舞台缩放。 但是,它不支持常规缩放、旋转和倾斜。 如果对象本身进行了缩放(如果将 scaleX 和 scaleY 设置为除 1.0 以外的其它值),滤镜将不进行缩放。 只有用户在舞台上进行放大时它才会缩放。
如果结果图像的宽度或高度超过 2880 像素,则不应用滤镜。 例如,如果您在放大某个大型影片剪辑时应用了滤镜,则在结果图像超过 2880 像素的限制时滤镜将关闭。
查看示例
另请参见
flash.display.BitmapData.applyFilter()
flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
flash.display.DisplayObject.scaleX
flash.display.DisplayObject.scaleY
flash.filters.DropShadowFilter.distance
flash.filters.DropShadowFilter.angle
--------------------------------------------------------------------------------
公共属性
隐藏继承的公共属性
显示继承的公共属性
属性 定义方
alpha : Number
颜色的 Alpha 透明度值。 GlowFilter
blurX : Number
水平模糊量。 GlowFilter
blurY : Number
垂直模糊量。 GlowFilter
color : uint
光晕颜色。 GlowFilter
constructor : Object
对类对象或给定对象实例的构造函数的引用。 Object
inner : Boolean
指定发光是否为内侧发光。 GlowFilter
knockout : Boolean
指定对象是否具有挖空效果。 GlowFilter
prototype : Object
[静态] 对类或函数对象的原型对象的引用。 Object
quality : int
应用滤镜的次数。 GlowFilter
strength : Number
印记或跨页的强度。 GlowFilter
公共方法
隐藏继承的公共方法
显示继承的公共方法
方法 定义方
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)
用指定参数初始化新的 GlowFilter 实例。 GlowFilter
clone():BitmapFilter
返回此滤镜对象的副本。 GlowFilter
hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。 Object
isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。 Object
propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。 Object
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。 Object
toString():String
返回指定对象的字符串表示形式。 Object
valueOf():Object
返回指定对象的原始值。 Object
属性详细信息
alpha 属性
alpha:Number [读写]
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
颜色的 Alpha 透明度值。 有效值为 0 到 1。 例如,0.25 设置透明度值为 25%。 默认值为 1。
实现
public function get alpha():Number
public function set alpha(value:Number):void
blurX 属性
blurX:Number [读写]
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
水平模糊量。 有效值为 0 到 255(浮点)。 默认值为 6。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。
实现
public function get blurX():Number
public function set blurX(value:Number):void
blurY 属性
blurY:Number [读写]
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
垂直模糊量。 有效值为 0 到 255(浮点)。 默认值为 6。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。
实现
public function get blurY():Number
public function set blurY(value:Number):void
color 属性
color:uint [读写]
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
光晕颜色。 有效值采用十六进制格式 0xRRGGBB。 默认值为 0xFF0000。
实现
public function get color():uint
public function set color(value:uint):void
inner 属性
inner:Boolean [读写]
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
指定发光是否为内侧发光。 值 true 表示内侧发光。 默认值为 false,即外侧发光(对象外缘周围的发光)。
实现
public function get inner():Boolean
public function set inner(value:Boolean):void
knockout 属性
knockout:Boolean [读写]
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
指定对象是否具有挖空效果。 值为 true 将使对象的填充变为透明,并显示文档的背景颜色。 默认值为 false(不应用挖空效果)。
实现
public function get knockout():Boolean
public function set knockout(value:Boolean):void
quality 属性
quality:int [读写]
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
应用滤镜的次数。 默认值为 BitmapFilterQuality.LOW,与应用一次滤镜等效。 值 BitmapFilterQuality.MEDIUM 两次应用滤镜;值 BitmapFilterQuality.HIGH 三次应用滤镜。 滤镜的值越小,呈现速度越快。
对于大多数应用,quality 的值为低、中或高就足够了。 您可以使用其它数值(最高为 15)来达到不同的效果,但是值越高,呈现速度越慢。 除了增加 quality 的值,仅增加 blurX 和 blurY 属性的值通常也可以获得类似的效果,而且呈现速度更快。
实现
public function get quality():int
public function set quality(value:int):void
另请参见
flash.filters.BitmapFilterQuality
strength 属性
strength:Number [读写]
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
印记或跨页的强度。 该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255。 默认值为 2。
实现
public function get strength():Number
public function set strength(value:Number):void
构造函数详细信息
GlowFilter () 构造函数
public function 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)
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
用指定参数初始化新的 GlowFilter 实例。
参数 color:uint (default = 0xFF0000) — 光晕颜色,采用十六进制格式 0xRRGGBB。 默认值为 0xFF0000。
alpha:Number (default = 1.0) — 颜色的 Alpha 透明度值。 有效值为 0 到 1。 例如,0.25 设置透明度值为 25%。
blurX:Number (default = 6.0) — 水平模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。
blurY:Number (default = 6.0) — 垂直模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。
strength:Number (default = 2) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255。
quality:int (default = 1) — 应用滤镜的次数。 使用 BitmapFilterQuality 常量:
BitmapFilterQuality.LOW
BitmapFilterQuality.MEDIUM
BitmapFilterQuality.HIGH
有关详细信息,请参阅 quality 属性的说明。
inner:Boolean (default = false) — 指定发光是否为内侧发光。 值 true 指定发光是内侧发光。 值 false 指定发光是外侧发光(对象外缘周围的发光)。
knockout:Boolean (default = false) — 指定对象是否具有挖空效果。 值为 true 将使对象的填充变为透明,并显示文档的背景颜色。
另请参见
BitmapFilterQuality
GlowFilter.quality
方法详细信息
clone () 方法
override public function clone():BitmapFilter
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9
返回此滤镜对象的副本。
返回 BitmapFilter — 具有原始 GlowFilter 实例的所有属性的新 GlowFilter 实例。
示例 如何使用示例
以下示例将绘制一个正方形,并对它应用模糊滤镜。 该示例的一般工作流程如下:
导入所需的类。
声明 draw 方法中所用的三个属性,该方法使用 Graphics 类的方法(通过 Sprite 的 graphics 属性访问)绘制一个橙色正方形。
创建构造函数,该函数执行以下操作:
调用 draw 方法。
创建名为 filter 的新 BitmapFilter 对象,并将对 getBitmapFilter()(用于定义滤镜)的调用的返回值赋予它。
创建一个名为 myFilters 的新数组,并将 filter 添加到该数组。
将 myFilters 分配给 BevelFilterExample 对象的 filters 属性。 这将应用 myFilters 中包含的所有滤镜,在本例中仅为 filter。
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.BitmapFilter;
import flash.filters.BitmapFilterQuality;
import flash.filters.GlowFilter;
public class GlowFilterExample extends Sprite {
private var bgColor:uint = 0xFFCC00;
private var size:uint = 80;
private var offset:uint = 50;
public function GlowFilterExample() {
draw();
var filter:BitmapFilter = getBitmapFilter();
var myFilters:Array = new Array();
myFilters.push(filter);
filters = myFilters;
}
private function getBitmapFilter():BitmapFilter {
var color:Number = 0x33CCFF;
var alpha:Number = 0.8;
var blurX:Number = 35;
var blurY:Number = 35;
var strength:Number = 2;
var inner:Boolean = false;
var knockout:Boolean = false;
var quality:Number = BitmapFilterQuality.HIGH;
return new GlowFilter(color,
alpha,
blurX,
blurY,
strength,
quality,
inner,
knockout);
}
private function draw():void {
graphics.beginFill(bgColor);
graphics.drawRect(offset, offset, size, size);
graphics.endFill();
}
}
}
--------------------------------------------------------------------------------
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Sun Oct 26 2008, 02:41 AM -07:00