【问题标题】:My 'spinner' animation stops我的“微调器”动画停止
【发布时间】:2013-08-19 04:15:49
【问题描述】:

我有一个简单的“进度”类来控制我的旋转点和进度条。 问题是我的点有时会在加载我的组件时停止动画。这是我的代码:

    protected static const CONST_DOTS_ANIM_DELAY = 85;
    protected var m_tDotsAnimTimer:Timer;

    m_tDotsAnimTimer = new Timer( CONST_DOTS_ANIM_DELAY );
    m_tDotsAnimTimer.addEventListener(TimerEvent.TIMER, DotsAnimHandler);


    public function DotsAnimHandler(event:Event):void
    {
        mcSpinnerDots["mcFadeDot"+m_nCurrentDot].gotoAndPlay( 2 );
        m_nCurrentDot++;
        if( m_nCurrentDot == 8 )
        {
            m_nCurrentDot = 0;
        }
    }


    public function ShowSpinner():void
    {
        mcSpinnerDots.visible = true;
        m_tDotsAnimTimer.start();
        visible = true;
    }

感谢:)

【问题讨论】:

    标签: actionscript-3 flash animation loading


    【解决方案1】:

    我有一种强烈的感觉,在您的处理程序上,您调用了一个不存在的点,但您看不到它,因为您通过 [] 调用它。

    在处理程序的第一行跟踪 trace(mcSpinnerDots["mcFadeDot"+m_nCurrentDot]) 并查看它是否返回点的值。

    您还可以使用以下代码行优化计数器

    m_nCurrentDot = (m_nCurrentDot + 1) % 9; // range from 0 to 8
    

    而不是

    m_nCurrentDot++;
    if( m_nCurrentDot == 8 )
    {
       m_nCurrentDot = 0;
    }
    

    它工作得更快,看起来更好。

    希望有帮助!

    【讨论】:

    【解决方案2】:

    creative magic 有一些不错的建议,但是如果你有一个 8 个点的循环动画,而不是在舞台上有 8 个资产并分别管理它们,而是将它们变成一个 mc。这取消了对计时器的需要

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      相关资源
      最近更新 更多