2010-02-08 4 views
0

내 미터가 커 보이고 바늘이 반복적으로 회전합니다. 어떻게 그것에 이징을 추가합니까?
이징 및 타이머 이벤트 AS3

계량기는 타이머 이벤트로 구성됩니다. 끝날 때 바늘이 튀어 나오길 바래. 단순히 변수를 추가하는 것보다 애니메이션이 조정될 때 컨트롤을 필요로합니다. "회원에게 Thxs"

alt text http://www.ashcraftband.com/myspace/videodnd/icon8.jpg

WORKING는 CODE

var timer:Timer = new Timer(20, 30);//tick 200, 36<br> 

timer.addEventListener(TimerEvent.TIMER, onTimer); 
timer.addEventListener(TimerEvent.TIMER_COMPLETE, startAgain); 

timer.start(); 

function startAgain($evt:TimerEvent):void { 
    timer.reset(); 
    timer.start(); 
} 

function onTimer($evt:TimerEvent):void { 
    watch.hand.rotation = 30 + timer.currentCount;//tick 5 
} 

시도가

//the "tick" may mess up the effect 

import fl.transitions.Tween; 
import fl.transitions.easing.*; 
var timer:Timer = new Timer(20, 30);//tick 200, 36 
    var startValue:Number = watch.hand.rotation; 
    var finishValue:Number = 33;//400 
    var duration:Number = 222;//3 
    var myTween:Tween = new Tween(watch.hand, "rotation", Elastic.easeOut, startValue, finishValue, duration, false);//true 
    myTween.looping = true; 
timer.addEventListener(TimerEvent.TIMER, onTimer); 
timer.addEventListener(TimerEvent.TIMER_COMPLETE, startAgain); 

timer.start(); 

function startAgain($evt:TimerEvent):void { 
    timer.reset(); 
    timer.start(); 
} 
function onTimer($evt:TimerEvent):void { 
    watch.hand.rotation = 30 + timer.currentCount;//tick 5 
//watch.x =+ 66; 

} 

실험
내 프로젝트 "바늘의 미친, 그냥 가정하자 반송"실패 더 높은 이해가 필요합니다. f 타이머 이벤트 및 트위닝. 이 애니메이션으로 물건을 만들 수 있다면 함수 호출을 전달하고 이벤트를 설정하는 방법을 더 잘 이해할 수 있다고 생각합니다.

답변

1

@pfunc가 언급했듯이 이것은 타사 트위닝 라이브러리를 사용하여 훨씬 쉽게 수행 할 수 있습니다. fl.transitions.Tween을 사용하여 수행 할 수 있지만 tweens 및 onComplete 처리 체이닝은 바람직하지 않습니다.

언급 한 바와 같이

,이 중 하나를 체크 아웃 :

Tweener

이 3의 모든

GTween

TweenLite

플래시의 내장보다 훨씬 더하는 (매우 비슷한 API를 Tween - IMHO)

내가 원래 질문을 도와 주었을 때 Tim 클래스에서, 나는 이것이 당신이하고 싶었던 것임을 깨닫지 못했습니다. Timer 클래스는 이벤트가 일관된 방식으로 처리되기 때문에이 문제에 적합한 선택이 아닙니다.

+0

예, 사람들이 fl.transitions 패키지를 사용하지 않을 정도로 충분히 권할 수는 없습니다. 우리는 심지어 우리 프로젝트에서 그것을 허용하지 않습니다. –

+0

@VideoDnd, 실제로 @pfunc에 체크 표시를합니다. 결국 그는 12 분 전에 같은 대답을했습니다. – sberry

+0

나는 아마도 tweenlite로 돌아갈 것이다. 내 프로젝트에는 모두 루프, 트윈, 반복 애니메이션이 포함되어있어 프레임 애니메이션이 처리 할 수 ​​없습니다. 감사. –

1

이 경우 다른 트위닝 엔진을 사용합니다. tweener 또는 gtween을 확인하십시오. 애니메이션 효과를 더 쉽게 만들고 Tween이 애니메이션을 완성 할 때 함수를 호출 할 수 있습니다. 맞춤 트윈을 만들고 원하는 바운스 양을 조정할 수 있습니다. 트위닝 엔진에 내장 된 플래시로이를 수행 할 수있는 방법이있을 수 있지만 확실하지는 않습니다.