包 | mx.effects |
类 | public class EffectTargetFilter |
继承 | EffectTargetFilter Object |
EffectTargetFilter 类定义使用 filterProperties
和 filterStyles
属性的 defaultFilterFunction()
方法以确定是否在每个效果目标上播放效果。
您还可以定义自定义滤镜函数来实现自己的过滤逻辑。为此,定义滤镜函数,然后使用 filterFunction
属性将该函数指定给 EffectTargetFilter 对象。
要配置效果以使用自定义滤镜,可将 EffectTargetFilter 对象传递到效果的 Effect.customFilter
属性。
另请参见
属性 | 定义方 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
filterFunction : Function 定义自定义滤镜逻辑的函数。 | EffectTargetFilter | ||
filterProperties : Array 指定组件属性的字符串 Array。 | EffectTargetFilter | ||
filterStyles : Array 指定样式属性的字符串 Array。 | EffectTargetFilter | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
requiredSemantics : Object = null 必须与要播放的效果目标相关联的属性和关联值的集合。 | EffectTargetFilter |
方法 | 定义方 | ||
---|---|---|---|
构造函数。 | EffectTargetFilter | ||
确定是否应该过滤目标,如果该目标应包含在效果中,则返回 true。 | EffectTargetFilter | ||
指示对象是否已经定义了指定的属性。 | Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object |
方法 | 定义方 | ||
---|---|---|---|
EffectTargetFilter 类的默认滤镜函数。 | EffectTargetFilter |
filterFunction | 属性 |
public var filterFunction:Function
定义自定义滤镜逻辑的函数。Flex 针对效果的每个目标调用此方法。如果函数返回 true
,则在目标上播放效果;如果返回 false
,则效果跳过目标。与 Effect.filter
属性相比,自定义滤镜函数可为您提供更多的筛选控制。
滤镜函数具有以下特征:
filterFunc(propChanges:Array, instanceTarget:Object):Boolean { // Return true to play the effect on instanceTarget, // or false to not play the effect. }
其中:
propChanges
— PropertyChanges 对象的 Array,每个目标效果组件一个对象。如果过渡未修改目标的属性,则该属性不包括在此 Array 中。
instanceTarget
— 要过滤的效果的特定目标组件。在自定义滤镜函数中,首先通过将 instanceTarget
参数比作 propChanges.target
属性来搜索 propChanges
Array 以获得与 instanceTarget
参数相匹配的 PropertyChanges 对象。
另请参见
filterProperties | 属性 |
public var filterProperties:Array
指定组件属性的字符串 Array。如果目标组件上 Array 中的任一属性发生更改,则在目标上播放效果。
如果定义自定义滤镜函数,则您可以在自己的函数中检查 filterProperties
属性。
filterStyles | 属性 |
public var filterStyles:Array
指定样式属性的字符串 Array。如果目标组件上 Array 中的任一样式属性发生更改,则在目标上播放效果。
如果定义自定义滤镜函数,则您可以在自己的函数中检查 filterStyles
属性。
requiredSemantics | 属性 |
public var requiredSemantics:Object = null
必须与要播放的效果目标相关联的属性和关联值的集合。
使用数据效果时,您可以使用此属性过滤效果。如果希望在不是由效果添加的 list 控件的所有目标(即以任何其它方式删除、替换、移动或影响的目标)上播放数据效果,您可以按如下方式写入效果定义:
<mx:Blur> <mx:customFilter> <mx:EffectTargetFilter requiredSemantics="{{'added':false}}"/> </mx:customFilter> </mx:Blur>
要在不是由效果添加或删除的所有目标上播放数据效果,您可以按如下方式写入效果定义:
<mx:Blur> <mx:customFilter> <mx:EffectTargetFilter requiredSemantics="{{'added':false}, {'removed':false}}"/> </mx:customFilter> </mx:Blur>
您可以指定的允许的属性列表包括 added
、removed
、replaced
和 replacement
。属性的允许值是 true
和 false
。
EffectTargetFilter | () | 构造函数 |
public function EffectTargetFilter()
构造函数。
defaultFilterFunction | () | 方法 |
protected function defaultFilterFunction(propChanges:Array, instanceTarget:Object):Boolean
EffectTargetFilter 类的默认滤镜函数。如果 instanceTarget
对于 filterProperties
或 filterStyles
属性指定的任意值包含不同的开始值和结束值,则在目标上播放效果。
参数
propChanges:Array —
PropertyChanges 对象的 Array。每个 PropertyChanges 对象的 target 属性等同于效果的目标。如果过渡未修改目标的属性,则对应的 PropertyChanges 对象不包括在此数组中。
| |
instanceTarget:Object — 调用此函数的 EffectInstance 的目标。如果效果包含多个目标,则每个目标调用此函数一次。 |
Boolean —
返回 true 以允许播放效果实例。
|
另请参见
filterInstance | () | 方法 |
public function filterInstance(propChanges:Array, semanticsProvider:IEffectTargetHost, target:Object):Boolean
确定是否应该过滤目标,如果该目标应包含在效果中,则返回 true。通过调用 filterFunction 和 semanticFilterFunction 确定是否应该过滤目标,当且仅当这两个函数都返回 true 时才返回 true。包含默认值的默认函数始终返回 true。通常,EffectTargetFilter 使用某一种类型的滤镜或其他类型的滤镜,但不同时使用两种滤镜。
参数
propChanges:Array — PropertyChanges 对象的 Array。每个 PropertyChanges 对象的 target 属性等同于效果的目标。如果过渡未修改目标的属性,则对应的 PropertyChanges 对象不包括在此数组中。 | |
semanticsProvider:IEffectTargetHost — 用于计算目标的 requiredSemantics 中所指定属性的 IEffectTargetHost,一般为效果的 effectTargetHost。对于项目更改效果,当效果的目标为项目渲染器时,这将是包含项目渲染器的 List 或 TileList。 | |
target:Object — 调用此函数的 EffectInstance 的目标。如果效果包含多个目标,则每个目标调用此函数一次。 |
Boolean —
如果目标应包括在效果中,则为 true ,否则返回 false 。
|