4

在 Adob​​e Edge Animate 中,如何获取 Symbol 的当前时间?

我混合使用 jQuery 和 Adob​​e Edge 代码来编写我的页面。我想检查一个符号的时间是否停留在第一帧(如果在 Flash 的概念中)。

$(window).scroll(function(e) 
{
   var the_stage = $.Edge.getComposition("EDGE-123456").getStage();
   var sym = the_stage.getSymbol(id);
   // how to get current time ?
});
4

2 回答 2

6

终于找到了解决办法。要获取当前时间,请使用:

var pos = sym.getPosition()

pos是一个整数。如果符号之前没有播放过,它的值为-1,否则它是以毫秒为单位的位置。

于 2013-02-20T08:39:22.153 回答
2

您的解决方案没问题,但需要澄清。

如果您的动画在 div“内部”:

<div id="stage_animation_0" class="animation_0"></div>

我建议用“animation_”+动画编号命名类属性,用“stage_”+类名命名id属性。

得到

您可以通过这种方式获得实际的时间轴位置:

var getAnimationPos = function(animation) {     
  var stage = $.Edge.getComposition(animation).getStage();
  var sym = stage.getSymbol("stage_" + animation);
  return sym.getPosition();
}

通过这种方式,您可以获得时间轴位置:

var position = getAnimationPos("animation_0");

设置实际时间线位置更加“复杂”。

如果您的动画正在播放并且您想跳转到特定位置:

var jumpPosition = 300; /* expressed in milliseconds */
$.Edge.getComposition(animation).getStage().play(jumpPosition);

如果您的动画已暂停并且您想在不播放的情况下设置位置,您必须:

var jumpPosition = 300; /* expressed in milliseconds */
$.Edge.getComposition(animation).getStage().stop(jumpPosition);

这样,当您调用 play() 时,动画将从位置 300 开始。

于 2014-05-19T13:06:19.850 回答