2014-06-12 4 views
0

그래서 나는 대략 3 오후의 actionscript 3 경험을 가졌으므로 모든 개념을 이해하려고 노력하고 있지만, 아직 이해가되지 않는 비교적 단순한 이슈가 있습니다.Actionscript 3 - MovieClip의 프레임간에 점프합니까?

무대에는 'num'이라는 무비 클립이 있으며이 프레임에는 3 개의 프레임이 있으며 각 프레임에는 숫자 1, 2 및 3이 그려져 있습니다. 'nextbtn'이라는 버튼이 있는데 이는 클릭시 다음 프레임 (일반 타임 라인)으로 이동합니다. 'NUM을'에 관한 기능은 다음

막대 번째 프레임
function num2(): void { 
    num.gotoAndStop(2); 
} 

function num3(): void { 
    num.gotoAndStop(3); 
} 

코드이다

stage.addEventListener(Event.ENTER_FRAME, num2); 

3 프레임 여기서

stage.addEventListener(Event.ENTER_FRAME, num3); 

에서 I는 "돈 무엇 t get :

이 두 이벤트 리스너는 화면의 숫자를 성공적으로 변경하지만, 네 번째 코드에서 동일한 코드를 사용하면 2 번 프레임으로 돌아 가려는 프레임, 아무 것도 일어나지 않는 것, 프레임이 진행 중이더라도 3 번에 머물러 있습니다.

이 어떤 도움을 크게 감상 할 수 ... 나는 이것이 아마 매우 간단한 개념이 무엇인지 말씨의 믿을 수 없을만큼 newbish 방법을 알고 있지만 코드에 올 때 나는 유아이다, 그래서, 감사합니다!

답변

1

문제는 당신이 그 청취자를 이해하지 못한다는 것이며, 타임 라인에서 움직이는 것을 엉망으로 만들뿐만 아니라 num MovieClip의 프레임을 이동하는 것입니다. 다음은 현재 상황입니다.

첫 번째 프레임에 있습니다.

stage.addEventListener(Event.ENTER_FRAME, num2); 

무엇 실제로하는 일은 각 틱에 은 (프레임 입력)이다이는 num2 기능을 실행 : 당신은 몇 가지 버튼 (nextbtn)와 2.이 프레임에가는 기본 타임 라인을이 코드가됩니다 눌러 : 당신의 .SWF는 초당 30 프레임의 속도로 실행하려 할 경우,

function num2(): void { num.gotoAndStop(2); } 

그래서, 이것은 num.gotoAndStop(2) 초에 30 번이 실행되는 것을 의미한다. 어떤 의미가 덜하다 - 그것은 이미 프레임 2에 있으며 멈췄다. 계속 거기에 가서 강제로 멈추게 할 생각은 없습니다.

그런 다음 다음을 다시 누릅니다. 그것은 프레임 3으로갑니다. 동일한 것이지만, num3을 가지고 있습니다. 기본적으로 매우 동일한 개념입니다. num 클립을 두 번 30 초에 gotoAndStop(3) 클립으로 강제 실행하십시오.

num.gotoAndStop 한 번만 전화하면됩니다. ENTER_FRAME에 리스너를 추가하는 대신 num.gotoAndStop(2) (또는 각각 3)을 호출하면됩니다.

또 다른 좋은 아이디어는 기본 타임 라인이나 num MovieClip을 이동하는 것입니다. 둘 다 움직이는 것은 조금 이상합니다. 그것은 효과가 있지만, 보시다시피, 실수를하게 만듭니다.희망이 도움이됩니다 : 당신은 그냥이 코드를하려고 몇 가지 프레임으로 이동 싶어 할 때마다 당신이 어떤 ENTER_FRAME 필요하지 않습니다처럼

+0

영웅입니다. 나는 프레임을 바꾸는 기능이 필요 없다는 것을 모르는 초보자입니다. 엄청 고마워! – PoundFFFFFF

+0

원한다면 대답을 수락 할 수 있으므로 열려있는 질문이 없으므로 사람들이 책을 읽는 데 시간을 보내고 도움을줍니다. –

0

나에게 소리 : 당신은 클릭 후 싶어이 코드가있는 경우

num.gotoAndStop(2); 

당신의 버튼을 사용해보십시오.

back_button.addEventListener(MouseEvent.CLICK, back_clk); 
function back_clk(e:MouseEvent):void 
{ 
    prevFrame(); 
    // for next frame try this ===> nextFrame(); 
}