2016-09-14 6 views
0

私はAIR for AndroidとStarlingフレームワークでゲームを開発しています。私はIDEとしてフラッシュCCを使用しています。私はフラッシュの中で私はそれがうまく動作しますが、私はアンドロイドにそれを公開するときに正しく動作しませんテストします。AIRアプリケーションはIDE内では動作しますが、デバイス上では動作しません

メニュー、レベル選択、ゲームプレイ画面を非表示にするScreen Managerクラスがあります。そのために私はカスタムイベントクラスを持っています。以下の関数はScreen Managerクラスの内部にあります。 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(); 
     } 
    } 

ユーザーがレベルボタンをクリックすると、イベントが発生します。他のボタンを参照してください

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"に変更しました。アプリは正常に実行されます。

+0

他人を傷つける可能性のある問題に対して貴重な回答を投稿していただき、ありがとうございます。 –

関連する問題