2016-09-14 3 views
0

AIR for android 및 Starling framework을 사용하여 게임을 개발하고 있습니다. IDE로 플래시 CC를 사용하고 있습니다. 내가 플래시 안에 테스트 할 때 그것은 잘 작동하지만 내가 안드로이드에 게시하면 제대로 작동하지 않습니다.AIR 응용 프로그램은 IDE에서는 작동하지만 장치에서는 작동하지 않습니다.

메뉴, 레벨 선택 및 게임 플레이 화면을 숨기고 표시하는 스크린 관리자 클래스가 있습니다. 이를 위해 맞춤 이벤트 클래스가 있습니다. 아래 함수는 스크린 관리자 클래스 안에 있습니다. TO_GAME이 아닌 모든 대상 값에서 작동하지만 입니다.

private function onNavigate(e: NavEvent) 
    { 
     if (e.destination == Destination.TO_HOME) 
     { 
      menuScreen.wake(); 
     } 
     else if (e.destination == Destination.TO_LEVELS) 
     { 
      levelScreen.wake(); 
     } 
     else if (e.destination == Destination.TO_GAME) 
     { 
      gameScreen.wake(); 
     } 
     else if (e.destination == Destination.TO_HELP) 
     { 
      helpScreen.wake(); 
     } 
     else if (e.destination == Destination.TO_ABOUT) 
     { 
      aboutScreen.wake(); 
     } 
    } 

사용자가 레벨 버튼을 클릭하면 이벤트가 시작됩니다. else 부분을 참조하십시오.

var btn:Button = e.target as Button; 
     if (btn == backBtn) 
     { 
      this.dispatchEvent(new NavEvent(NavEvent.NAVIGATE , Destination.TO_HOME)); 
      this.sleep(); 
     } 
     else 
     { 
      //just testing if I can get the level number from the position of the level button 
      trace(this.getLevelNumber(btn.x,btn.y)); 
      this.dispatchEvent(new NavEvent(NavEvent.NAVIGATE , Destination.TO_GAME)); 
      this.sleep(); 
     } 

다른 버튼에서이 이벤트를 실행했지만 지금까지는 아무런 운이 없었습니다. IDE 내부에서 작동하지만 장치 내부에서는 아무 것도 일어나지 않습니다. 다른 모든 이벤트는 작동합니다. 위의 함수에서 첫 번째 조건이 정상적으로 작동하는 이벤트입니다.

답변

1

Android 플랫폼 용 AIR에서 제작할 때 파일 이름은 대소 문자를 구분해야한다는 점에 유의해야합니다.

예를 들어 "LevelData.json"이라는 파일이 있습니다. 대문자 'D'를 주목하십시오.

은 내가 'D'의 소문자를 사용

assets.enqueue(dir.resolvePath("Data/Levels/leveldata.json")); 

다음 주 같은 찌르레기 자산 관리자로이 파일을로드했습니다. 창은 대소 문자를 구분하지 않는 파일 이름을 가지고 있기 때문에 실제 Android 장치에서 응용 프로그램을 실행할 때 아무런 문제가 발생하지 않았습니다. 그것은 작동하지 않았다. 그래서 원래 파일 이름을 "leveldata.json"ans voila로 변경했습니다! 응용 프로그램은 지금 잘 실행됩니다.

+0

다른 사람들에게 줄 수있는 문제에 대한 가치있는 답변을 게시 한 것을 +1 축하합니다. –

관련 문제