2011-02-12 4 views
0

저는 버튼 클릭 이전에 천천히 회전하고 싶습니다. mxml 원형 차트가 있습니다. 그러나 클릭시 즉시 중지해야합니다 (또는 적어도 합리적으로 신속하게). 그러면 콜 아웃 레이블이 페이드와 함께 도입됩니다.누구나 요구에 따라 멈출 수있는 효율적인 효율적인 회전 기능을 제안 할 수 있습니까?

나는이 달성하기 위해 타이머 기능 모두 experiemented 한 :

protected function group1_creationCompleteHandler(event:FlexEvent):void 
     { 
      var rt:Timer = new Timer(20,0); 
      rt.addEventListener(TimerEvent.TIMER, rtt); 

      rt.start() 
     } 

     private function rtt(event:TimerEvent):void 
     { 
      QPieSeries.startAngle -=1; 
     } 

뿐만 아니라 (당연히) 같은 효과를 제공하는 callLater 변형, 그러나

protected function group1_creationCompleteHandler(event:FlexEvent):void 
     { 
      rtt(); 
     } 

     private function rtt():void 
     { 
      QPieSeries.startAngle -=1; 
      callLater(rtt); 
     } 

을, 내 문제 이 효과를 달성하는 두 가지 방법 모두 성능이 매우 낮으며 반복적으로 해고되고 수신되는 많은 수의 이벤트에서 이해할 수 있습니다.

나는 var rotateVar:Rotate = new Rotate(QPieSeries) 접근법을 사용하려고 시도했으나 중지 할 때 레이블이 QPieSeries.startAngle 방법을 적용하지 않고 세그먼트와 일치하지 않으며 점프 등으로 이어지는 습관이 있습니다. 어떤 종류의 루프에도 적용될 때 일반적으로 일을 망칩니다.

내가 실제로하고 싶은 것이 (실행 가능한 솔루션으로 이어질 수 있다는 점에서) 일종의 QPieSeries.startAngle = 60은 타이밍 루프에서 어떤 종류의 효과를 보간하는 것과 관련이 있습니까? 그리고 루프의 기간과 일치하는 일종의 정의 된 기간.

그러나 이것은 나보다 앞서 있습니다. 누군가가 제안/말하고 싶은 것이 있으면 정말 고맙습니다.

감사합니다.

+0

'Event.ENTER_FRAME'을 (를) 사용하지 않는 이유가 있습니까? 어쨌든 다시 그릴 수있는 유일한 시간입니다. – jswolf19

+0

또한 어떤 버전의 플렉스를 사용하고 있습니까? – jswolf19

+0

Event.ENTER_FRAME이 재미있을 것 같은데요, 내가 기회를 얻었 으면 좋겠지 만, 내가 찾고있는 개선점을 제공 할 지 모르겠지만 ... Greensock 나는 좋은 내기라고 생각한다. . 감사합니다 – Joshua

답변

3

TweenLite 또는 Tweener과 같은 Tweening 라이브러리 사용을 고려해야합니다. 이들을 사용하여 시간이 지남에 따라 임의의 객체의 매개 변수를 변경할 수 있으며 모든 애니메이션에 대해 단일 프레임/타이머 루프를 언제든지 사용합니다.

+0

놀랍고 아름답게 일했습니다. TweenLite는 환상적입니다. – Joshua

관련 문제