Polymer Neon-Animation多个完成听众

时间:2015-07-15 02:40:08

标签: javascript polymer polymer-1.0

我正在编写实现Neon Animation元素库的Polymer元素。我正在为我的元素实现NeonAnimationRunnerBehavior行为。这个元素特别有多个动画(运行正常),每个动画结束时需要调用唯一的结束函数。

文档建议使用这样的监听器:

listeners: {
    // this event is fired when the animation finishes
    "neon-animation-finish": "imageFadeOutComplete"
},

如果你有一个动画回调,这个效果很好。但我有一个悬停动画,留下悬停状态,然后点击(点击)我的元素。我尝试过探索neon-animation-finish事件,但每个动画似乎都是相同的。

所以,我的问题是:是否可以让每个动画在完成时调用不同的函数?

我希望它会像:

....

animationConfig: {
    value: function() {
        return {
            "imageFadeOut": {
                name: "fade-out-animation",
                node: this.$.image,
                complete: "imageFadeOutComplete"
            },
...

但是,这不起作用。

1 个答案:

答案 0 :(得分:3)

playAnimation接受第二个参数,该参数将作为详细信息传递给neon-animation-finish事件处理程序,因此您可以执行以下操作:

animateFadeIn: function() {
  this.playAnimation('imageFadeIn', 'imageFadeIn');
},

animateFadeOut: function() {
  this.playAnimation('imageFadeOut', 'imageFadeOut');
},

_animationFinish: function(e, animation) {
  switch(animation) {
    case 'imageFadeOut':
      ...
      break;
    case 'imageFadeIn':
      ...
      break;
  }
}