2014-05-24 4 views
0

마우스 클릭시 동영상 클립의 y 위치를 트위닝하려고합니다. 지금까지 나는이 작동하지만 트윈 후 Y 좌표를 저장하지 않고 각 트윈 처음으로 돌아갑니다이 코드를변수에 y 좌표를 저장합니다.

import fl.transitions.Tween; 

import fl.transitions.easing.*; 


var posY:Number = infographic_mc.y 
var redY:Number = -232 
var orangeY:Number = -551 
var yellowY:Number = -883 
var greenY:Number = -1225 
var blueY:Number = -1543 
var purpleY:Number = -1873 

var tween1:Tween = new Tween(infographic_mc, "y", Regular.easeOut, posY, redY, 2, true); 
var tween2:Tween = new Tween(infographic_mc, "y", Regular.easeOut, posY, orangeY, 2, true); 
var tween3:Tween = new Tween(infographic_mc, "y", Regular.easeOut, posY, yellowY, 2, true); 
var tween4:Tween = new Tween(infographic_mc, "y", Regular.easeOut, posY, greenY, 2, true); 
var tween5:Tween = new Tween(infographic_mc, "y", Regular.easeOut, posY, blueY, 2, true); 
var tween6:Tween = new Tween(infographic_mc, "y", Regular.easeOut, posY, purpleY, 2, true); 

tween1.stop(); 
tween2.stop(); 
tween3.stop(); 
tween4.stop(); 
tween5.stop(); 
tween6.stop(); 

red_btn.addEventListener(MouseEvent.CLICK, redButtonClick); 
orange_btn.addEventListener(MouseEvent.CLICK, orangeButtonClick); 
yellow_btn.addEventListener(MouseEvent.CLICK, yellowButtonClick); 
green_btn.addEventListener(MouseEvent.CLICK, greenButtonClick); 
blue_btn.addEventListener(MouseEvent.CLICK, blueButtonClick); 
purple_btn.addEventListener(MouseEvent.CLICK, purpleButtonClick); 


function redButtonClick(event:MouseEvent):void { 

tween1.start(); 

} 


function orangeButtonClick(event:MouseEvent):void { 

tween2.start(); 
} 


function yellowButtonClick(event:MouseEvent):void { 

tween3.start(); 
} 


function greenButtonClick(event:MouseEvent):void { 

tween4.start(); 
} 


function blueButtonClick(event:MouseEvent):void { 

tween5.start(); 
} 


function purpleButtonClick(event:MouseEvent):void { 

tween6.start(); 
} 

있습니다.

mouseClick 함수에 Y 좌표를 저장하는 변수를 업데이트하는 방법이 있습니까?

답변

0

시작 부분에 모든 트윈을 만드는 대신 현재 트윈을 저장할 변수를 가질 수 있습니다.

var currentTween:Tween; 

각 이벤트 리스너에서 infographic_mc 현재 위치를 기반으로 현재 트윈을 만들 수 있습니다. 코드는 다음과 같을 것이다 :

function redButtonClick(event:MouseEvent):void { 
    if(currentTween) currentTween.stop(); //if there is a current tween animating, stop it 

    currentTween = new Tween(infographic_mc, "y", Regular.easeOut, infographic_mc.y, redY, 2, true); 

    currentTween.start(); 
} 

또한, 나는 대신 별도의 기능의 모든 버튼에 대해 하나 개의 핸들러 기능을 갖는 제안하고 클릭 한 어떤 버튼을 파악하는 switch 문을 사용합니다. 또한 응용 프로그램에서 많은 애니메이션을 사용하려는 경우 더 나은 성능을 제공하는 Tweening 용 GreenSock 라이브러리를 살펴보십시오.

관련 문제