0

我在摆弄 Adob​​e Edge 动画,偶然发现了一个奇怪的问题,希望有人能帮助我。

我想要做的是,访问在舞台上声明的函数中设置的变量......对于我的基本测试,我在 compositionReady 中启动一个计时器(setInterval),以及一个计时器计数器变量以在运行时移动一个符号,这一切都有效太好了,接下来是有一个基本按钮来停止此计时器事件,这是我的问题,因为我已将计时器设置为 compositionReady 函数中的变量,所以我可以访问血腥变量,或者至少我可以弄清楚如何。

有什么建议吗?:) 我对声明变量的想法错了吗?,如果我在舞台的根目录中设置变量,我可以将它们作为全局变量访问,但这对于来自 Actionscript 3 的计时器(setInterval 函数)来说效果不佳,它总是在拍摄新事件之前检查“舞台”是否已正确启动是个好主意:)

这是我从舞台复制的代码.. 我在舞台 textSymbol 上有两个符号,另一个称为 RoundRect 是按钮。

Symbol.bindElementAction(compId, symbolName, "document", "compositionReady", function(sym, e) {

    var timerVar = 0;
    var timer = setInterval(loop, 33);

    // OUR LOOP FUNCTION
   function loop(){
    timerVar++;
        sym.$('textSymbol').css('left', timerVar);
   }




});
//Edge binding end



Symbol.bindElementAction(compId, symbolName, "${_RoundRect}", "click", function(sym, e) {

   // SET THE SYMBOL BACK TO 0, UPDATED TO THE VARIABLE WITHIN THE TIMER EVENT
   sym.$('textSymbol').css('left', 0);


   alert(  sym.getComposition().getStage().getVariable('timerVar')  ); // return undefined


});
//Edge binding end
4

2 回答 2

0

在我的情况下删除 var 实际上有帮助。我创建了 GSAP 时间线变量并希望在鼠标悬停时暂停它。由于 mouseover 无法访问在 creationComplete 中声明的变量,因此删除“var”让我可以从 mouseover 函数中暂停时间线。

于 2016-06-29T07:31:58.417 回答
-1

只需在变量声明之前删除“var”,使其成为全局变量。

于 2014-03-05T11:24:57.613 回答