mx.effects
public class EffectTargetFilter
继承EffectTargetFilter Inheritance Object

EffectTargetFilter 类定义每个效果目标上的每个过渡效果执行的自定义滤镜。

EffectTargetFilter 类定义使用 filterPropertiesfilterStyles 属性的 defaultFilterFunction() 方法以确定是否在每个效果目标上播放效果。

您还可以定义自定义滤镜函数来实现自己的过滤逻辑。为此,定义滤镜函数,然后使用 filterFunction 属性将该函数指定给 EffectTargetFilter 对象。

要配置效果以使用自定义滤镜,可将 EffectTargetFilter 对象传递到效果的 Effect.customFilter 属性。

另请参见

Filtering effects


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  filterFunction : Function
定义自定义滤镜逻辑的函数。
EffectTargetFilter
  filterProperties : Array
指定组件属性的字符串 Array。
EffectTargetFilter
  filterStyles : Array
指定样式属性的字符串 Array。
EffectTargetFilter
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  requiredSemantics : Object = null
必须与要播放的效果目标相关联的属性和关联值的集合。
EffectTargetFilter
公共方法
 方法定义方
  
构造函数。
EffectTargetFilter
  
filterInstance(propChanges:Array, semanticsProvider:IEffectTargetHost, target:Object):Boolean
确定是否应该过滤目标,如果该目标应包含在效果中,则返回 true。
EffectTargetFilter
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
受保护的方法
 方法定义方
  
defaultFilterFunction(propChanges:Array, instanceTarget:Object):Boolean
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>

您可以指定的允许的属性列表包括 addedremovedreplacedreplacement。属性的允许值是 truefalse

构造函数详细信息
EffectTargetFilter()构造函数
public function EffectTargetFilter()

构造函数。

方法详细信息
defaultFilterFunction()方法
protected function defaultFilterFunction(propChanges:Array, instanceTarget:Object):Boolean

EffectTargetFilter 类的默认滤镜函数。如果 instanceTarget 对于 filterPropertiesfilterStyles 属性指定的任意值包含不同的开始值和结束值,则在目标上播放效果。

参数

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