AS3에서 Main 함수의 새 인스턴스를 어떻게 실행 하시겠습니까? 기본적으로 프로그램이 프로그램의 끝 부분에 도달하면 프로그램이 처음부터 다시 실행되기를 원합니다. 마지막에 트리에서 모든 자식을 제거하고 첫 번째 방법을 다시 실행하는 방법에 대해 생각했지만 불필요하고 지저분 해 보입니다. 클래스는 Sprite를 확장합니다.AS3에서 Main()의 다른 인스턴스를 실행하는 방법
편집 : 사용자 지정 이벤트를 만들고 dispatchEvent
을 사용하여 프로그램 끝에이 문제를 일으키는 데 약간의 문제가 있습니다. 이것은 아래의 현재 코드입니다.
전체 RunMain.as :
package
{
import flash.display.Sprite;
import flash.events.Event;
public class RunMain extends Sprite {
public function RunMain():void {
addEventListener(Event.ENTER_FRAME, loop);
}
private function loop(event:Event){
removeEventListener(Event.ENTER_FRAME, loop);
dispatchEvent(new EndEvent(EndEvent.END_EVENT));
}
}
}
전체 EndEvent.as : Main.as의
package
{
import flash.events.Event;
public class EndEvent extends Event
{
// Event types.
public static const END_EVENT:String = "event1";
public function EndEvent(type:String = EndEvent.END_EVENT)
{
super(type);
}
override public function clone():Event {
// Return a new instance of this event with the same parameters.
return new EndEvent(type);
}
}
}
부품 : 내 메인 클래스 내부
public function Main() {
runMain = new RunMain();
runMain.addEventListener(EndEvent.END_EVENT, onProgramFinish);
addChild(runMain);
init();
otherMethods();
}
public function onProgramFinish() {
removeChild(runMain);
runMain = null;
runMain = new RunMain() ;
}
, 나는 라인을 가지고 프로그램 끝의 onProgramFinish();
.
현재 컴파일러를 실행할 때 오류가 발생합니다.
ArgumentError : 오류 # 1063 : Main/onProgramFinish()에서 인수 개수가 일치하지 않습니다.
예상 한 0은 1을 받았습니다.
계속 진행을 선택하면 프로그램이 정상적으로 실행되지만 끝날 때 새 인스턴스가 실행되지 않습니다.
그것은 게임이지만 단지 애니메이션 형태의 프로그램이 될 수 없습니다. AS3 설명서에서 액세스 할 수있는 GameEvent 클래스가 없습니다. AS3에 내장 된 다른 유형의 이벤트를 사용하여이를 수행 할 수있는 방법이 있습니까? 또한, 다른 클래스를 만드는 대신이 모든 것을 Main() 클래스 문서 내에서 실행할 수 있습니까? – ArrayOutOfBounds
그게 그 예가 아니 었습니다. GameEvent는 존재하지 않지만 만들 수 있습니다. 모든 클래스, 모든 프로그램을 만들 수 있으며, 모든 유형의 기존 이벤트를 사용하고 [자신 만의 이벤트를 만들 수 있습니다.] (http://jeffnehlsen.com/2011/02/actionscript-3-custom-events-explained/). 그리고 ofc는 Main 클래스의 모든 것을 실행할 수 있지만 지저분 해 보입니다. – vikingmaster
알겠습니다. GAME_OVER는 CustomEvent 내부의 메소드입니까? – ArrayOutOfBounds