2012-01-08 3 views
0

재시작 버튼으로 플래시를 재시작하려고합니다. gotoAndPlay (0)를 사용하지만 아무 일도 일어나지 않습니다. 추적 문을 사용하여 확인하기 때문에 click 이벤트 처리기가 호출되고 있음을 확신합니다.클릭시 플래시 재시작

rs.addEventListener(MouseEvent.CLICK, restart); 

function restart(event:MouseEvent):void { 
    gotoAndPlay(0); 
} 
+0

어떤 종류의 애호가이며 코드는 어디에 배치됩니까? 스테이지에서가 아니라 무비 클립에서 호출 될 수도있는 것처럼 들립니다. 또는 스테이지가 이미 첫 프레임에 있습니다 (애니메이션을 작성하거나 타임 라인에서 코드를 작성하지 않는 한 일반적인 경우) – Kapep

+0

대명사를위한 프랑스어 알고리즘입니다. 그것은 나무처럼 작동합니다. 무대는 이미 첫 번째 프레임에 있다고 생각합니다. –

답변

0

첫 번째 프레임은 프레임 1, 0이 아닌

하지 어도비 프레임 만들기에 대 한 결정 이유를 확실히 제로 기반,하지만 그들은했다 : 무대/

+0

gotoAndPlay (1)도 작동하지 않습니다. –

+0

다른 주석에 제기 된 질문도 대단히 유효합니다. 재시작 방법은 어디에 있습니까? 1 이외의 프레임에 있습니까? 프레임 1로 이동하면 플래시가 다시 시작됩니까? –

0

추가 한 경우 개체를 버튼이나 그래픽과 같이 실제로 무대의 타임 라인을 사용하지 않으면 무대가 시작되어 첫 번째 프레임에 머물러있게됩니다. 따라서 'gotoAndPlay'는이 경우 작동하지 않습니다. 어쨌든 애니메이션을 다시 시작하는 것은 유용합니다. 자체적으로 코드를 재설정하지 않기 때문입니다.

실제로 재설정 할 부분과 유지할 부분을 결정해야합니다. 처음에로드 한 메모리에서 자산을 제거하기 만하면 다시 다운로드하기를 원하지 않을 것입니다. 일부 개체는 보관할 수 있으며 다른 개체는 제거해야합니다.

내가 아는 한 전체 페이지를 다시로드하는 것 외에 플래시 응용 프로그램을 재설정하는 쉬운 방법은 없습니다.

  1. 이 초기화 코드하는 방법을 만들기 :
    객체 생성, 표시 목록에 추가, 이벤트 리스너를 추가 여기에 손으로하는 응용 프로그램을 '리셋'하는 일반적인 단계는 다음과 같습니다.
  2. 클릭시 : 모든 객체를 스테이지에서 제거하고 모든 이벤트 리스너를 제거하십시오.
  3. 초기화 메소드를 다시 호출하십시오.

당신은 init 메소드의 참조를 새 변수로 설정하는 것이 이상적입니다. 따라서 이전 변수를 가비지 수집 할 수 있습니다. 코드 구조에 따라 일부를 수동으로 null로 설정해야 할 수도 있습니다. 더 이상 필요하지 않은 객체에 대한 참조를 유지하지 않도록하십시오.