2016-09-14 107 views
0

我正在開發一個AIR for android和Starling框架的遊戲。我正在使用Flash CC作爲IDE。當我測試閃光時它工作正常,但當我發佈到Android它不能正常工作。AIR應用程序在IDE中工作,但不在設備上

我有一個屏幕管理器類,隱藏和顯示菜單,水平選擇和遊戲中的屏幕。爲此我有一個自定義事件類。以下功能位於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

在AIR for Android平臺上發佈時,請記住文件名區分大小寫。

例如我有一個名爲「LevelData.json」的文件。注意大寫'D'。

我加載此文件到八哥資產經理像下面

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

請注意,我用「d」小寫字母。由於Windows具有不區分大小寫的文件名,它不會引起任何問題,但是當我在實際的Android設備上運行該應用程序時。它不起作用。所以我把原來的文件名改爲「leveldata.json」ans瞧!該應用現在運行良好。

+0

恭喜你找出+1來發佈一個可能會阻止其他人的問題的寶貴答案。 –

相關問題