Spark效果:为什么程序代码比触发器更受欢迎?

时间:2010-12-12 03:31:50

标签: flex flex4 effects

在Flex 3中,可以像这样触发MX效果:

<mx:Resize id="myEffect" />
<mx:Button mouseDownEffect="{myEffect}" />

在Flex 4中,Spark效果会像这样触发:

protected function onClick(event:MouseEvent):void {
    resizeEffect.end();
    resizeEffect.play();
}
...
<s:Resize id="resize" />
...
<s:Button click="onClick(event)" />

使用这种声明较少且较长的方法的原因是什么?我无法在文档中找到答案。

(有两点需要注意:

  1. mouseDown触发器和click事件之间可能存在细微差别,请忽略它,这只是一个示例。
  2. 我不确定触发器是否对Spark效果可靠或不可靠。也许他们会,但我想有一个原因,为什么甚至没有在官方文档中提到这种可能性。

2 个答案:

答案 0 :(得分:1)

当前版本的spark中没有正式支持效果触发器。您可以在此处跟踪此功能的进度:http://bugs.adobe.com/jira/browse/SDK-19743

答案 1 :(得分:0)

我将补充说,Flex 4按钮仍然在ASDocs中记录effect triggers,包括mouseDownEffect。你确定他们不工作吗?

也就是说,在幕后,在组件的代码中,效果触发器的工作方式与第二个样本相同。某些代码在某处获得效果(如果存在),并手动处理效果的播放。

由于Spark有一个半烘焙组件集,因此可能还没有实现。也许这个效果没有传递给你的按钮皮肤类,我怀疑它可能应该处理这种视觉变化。

也许您应该向我们提供一些可运行的样本?