Приложение AIR - PullRequest
       14

Приложение AIR

0 голосов
/ 07 ноября 2011

У меня есть приложение AIR, т. Е. Приложение MyAIRApplication готово. Я пытаюсь сделать заставку для него. Вот мой код до сих пор ..

main.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" 
                        creationComplete="showSplash()" 
                        visible="false"
                        layout="absolute"
                        showFlexChrome="false">
    <mx:Script>
        <![CDATA[
            import components.Splash;

            import mx.core.Window;
            import mx.controls.Alert;
            import mx.events.AIREvent;

            private var splash:Window;
            private var splashTimer:Timer;

            private function showSplash():void {
                splash = new Splash();
                splash.systemChrome = "none";
                splash.transparent = true;

                splash.type = NativeWindowType.LIGHTWEIGHT;
                splash.addEventListener(AIREvent.WINDOW_COMPLETE, boot);
                splash.open();
            }

            private function boot(event:AIREvent):void {
                splashTimer = new Timer(3000, 2);
                splashTimer.addEventListener(TimerEvent.TIMER_COMPLETE, showApp);
                splashTimer.start();
                this.removeEventListener(AIREvent.WINDOW_COMPLETE, boot);

            }

            private function showApp(event:Event):void {
                splash.close();
                splash = null;

                splashTimer.stop();
                splashTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, showApp);
                splashTimer = null;

                // My Application .. where I wrote all components
                var mainWin:WindowedApplication = new MyAIRApplication();
                mainWin.activate();
                mainWin.visible = true;
            }
        ]]>
    </mx:Script>
</mx:WindowedApplication>  

Splash.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:Window xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300"
           showFlexChrome="false" >
    <mx:Image x="0" y="0" width="600" height="400" source="@Embed('../images/splash-bg.png')" scaleContent="false"/>

</mx:Window>

Но я столкнулся с двумя проблемами:

  1. Мое приложение AIR (т.е. MyAIRApplication) не отображается после завершения заставки.
  2. Мой экран-заставка всегда отображается в левом верхнем углу

Может кто-нибудь дать мне решение?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2011

Это также может иметь какое-то отношение к тому, что вы применяете Splash Var к типу Window,

private var splash:Window;

Но затем создать его как новый Splash

private function showSplash():void {
                splash = new Splash();

Они оба должны быть либо Window, либо Splash.

0 голосов
/ 07 ноября 2011
  1. var mainWin:WindowedApplication = new MyAIRApplication();

WindowedApplication не создается, как это. У вас уже есть один, когда ваше приложение запускается, используйте его. Просто сделайте его содержимое скрытым, чтобы отображаться после всплеска.
Также я не уверен, что закрытие всплывающего окна с помощью splash.close() вызовет событие WINDOW_COMPLETE, проверьте это также с помощью trace (при необходимости переписать в Event.CLOSE.)

  1. По умолчанию окна не центрированы. Получите размер экрана с помощью Capabilities.screenResolutionX/Y, вычислите x / y для центрированного окна и вызовите splash.move(x, y).
...