AIR应用程序在IDE内部运行,但不在设备上运行

时间:2016-09-14 14:28:37

标签: android actionscript-3 flash events air

我正在使用AIR for android和Starling框架开发游戏。我使用Flash CC作为IDE。当我测试我在内部闪存它工作正常,但当我发布到Android它不能正常工作。

我有一个屏幕管理器类,它隐藏并显示菜单,级别选择和游戏屏幕。为此,我有一个自定义事件类。下面的函数位于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 个答案:

答案 0 :(得分:1)

在AIR for Android平台上发布时,您应该记住文件名区分大小写。

例如,我有一个名为“LevelData.json”的文件。注意首都'D'。

我正在将此文件加载到starling资产管理器中,如下所示

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

请注意,我使用了小写字母'd'。由于Windows具有不区分大小写的文件名,因此当我在实际的Android设备上运行应用程序时,它不会引起任何问题。那没起效。所以我把原来的文件名改为“leveldata.json”vo瞧!该应用程序现在运行良好。