2012-07-18 2 views
0

내가하고 싶은 일은 한 번 이상 청취자 기능을 실행하는 것입니다. 문제는 내 무비 클립 "버튼"에 마우스를 올리면 새로운 루프를 반복해서 입력한다는 것입니다. 트위터 이벤트가 완료되면 번만 실행할 수 있습니까?ActionScript 3 MouseEvent run once

import fl.transitions.Tween; 
import fl.transitions.easing.*; 
import fl.transitions.TweenEvent; 

function Over (e:MouseEvent):void 
{ 
trace('Over'); 
var myTweenUp:Tween = new Tween(button, "y", Back.easeOut, 200, 180, 2, true); 
} 

function Out (e:MouseEvent):void 
{ 
trace('Out'); 
var myTweenDown:Tween = new Tween(button, "y", Back.easeOut, 180, 200, 2, true); 
} 
button.addEventListener(MouseEvent.MOUSE_OVER, Over); 

button.addEventListener(MouseEvent.MOUSE_OUT, Out); 

답변

0

위의 코드에는 아무런 문제가 없습니다.

코드를 프레임 스크립트로 추가하는 것, 즉 IDE의 타임 라인 프레임에 코드를 추가한다고 생각합니다.

위의 코드 스 니펫 앞에 stop();을 추가하면됩니다.

import fl.transitions.Tween; 
import fl.transitions.easing.*; 
import fl.transitions.TweenEvent; 

stop(); 

// ... rest of the code 
0

나는 @loxxy 에서 솔루션이 트릭을한다고 생각합니다. 먼저 해당 솔루션을 사용해보십시오.

그렇지 않으면 이벤트가 발생하면 수신기를 제거하십시오. 나중에 다시 추가 할 수 있습니다. 당신이 두 된 MouseEvent를 실행하려면

예컨대 :

function Over (e:MouseEvent):void 
{ 
    button.removeEventListener(MouseEvent.MOUSE_OVER, Over); 
    [...] 
} 

function Out (e:MouseEvent):void 
{ 
    button.addEventListener(MouseEvent.MOUSE_OVER, Over); 
    [...] 
} 
0

, 당신은 그것을 할 때 removeEventListener를 추가 할 수 있습니다.

function Over (e:MouseEvent):void 
{ 
trace('Over'); 
var myTweenUp:Tween = new Tween(button, "y", Back.easeOut, 200, 180, 2, true); 
button.removeEventListener(MouseEvent.MOUSE_OVER, Over); 
} 

function Out (e:MouseEvent):void 
{ 
trace('Out'); 
var myTweenDown:Tween = new Tween(button, "y", Back.easeOut, 180, 200, 2, true); 
button.removeEventListener(MouseEvent.MOUSE_OUT, Out); 
} 

button.addEventListener(MouseEvent.MOUSE_OVER, Over); 
button.addEventListener(MouseEvent.MOUSE_OUT, Out); 

버튼에 마우스 오버 마우스 오버 실행 아웃 실행 나가서 하나 하나하는 루프를 확인하려면, 아래의 코딩을 시도 할 수 있습니다 :

function Over (e:MouseEvent):void 
{ 
trace('Over'); 
var myTweenUp:Tween = new Tween(button, "y", Back.easeOut, 200, 180, 2, true); 
button.removeEventListener(MouseEvent.MOUSE_OVER, Over); 
button.addEventListener(MouseEvent.MOUSE_OUT, Out); 
} 

function Out (e:MouseEvent):void 
{ 
trace('Out'); 
var myTweenDown:Tween = new Tween(button, "y", Back.easeOut, 180, 200, 2, true); 
button.removeEventListener(MouseEvent.MOUSE_OUT, Out); 
button.addEventListener(MouseEvent.MOUSE_OVER, Over); 
} 

button.addEventListener(MouseEvent.MOUSE_OVER, Over);