2013-08-19 1 views
0

내 회전 점과 진행률 막대를 제어하는 ​​간단한 '진행률'클래스가 있습니다. 문제는 내 구성 요소를로드하는 동안 내 점이 때때로 애니메이션을 멈추는 것입니다. 여기에 내 코드입니다 :내 '회 전자'애니메이션 중지

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; 
    } 

으로 감사합니다 :) 나는 당신의 핸들러에 당신이 존재하지 않는 점에 전화해서 당신이 비록 전화를 잘하기 때문에 그것을 볼 수없는 강한 느낌이

답변

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; 
} 

그것은 모두 작업을 빠르고 더 나은 모양으로 카운터를 최적화 할 수 있습니다.

희망 하시겠습니까?

+0

클래스 나 튜토리얼에서는 거의 배우지 않기 때문에, 그 최적화 (n % t)는 모듈러스 (modulus)라고 불리우며, 남은 것을 찾는 매우 빠른 방법입니다 –

0

창조적 인 마법에는 몇 가지 좋은 제안이 있지만 스테이지에 8 개의 자산이 있고 별도로 모두 관리하는 대신 8 개의 도트가있는 순환 애니메이션이있는 경우 하나의 mc로 만드십시오. 그건 타이머의 필요성을 폐지합니다

관련 문제