Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ожидание инициализации стейджа в AIR (http://www.flasher.ru/forum/showthread.php?t=212390)

undefined 29.01.2016 14:17

Ожидание инициализации стейджа в AIR
 
Имеется следующая проблема:
При запуске приложения на телефоне к моменту, когда выполняется конструктор Main,телефон еще не сменил ориентацию либо не скрыл системную панель из-за чего габариты стейджа stageWidth,stageHeight определяются неверно.Если выждать 2-3 секунды и после этого стартовать приложение - все ок.
Вопрос: есть ли какой-нибудь ивент чтоб понять,что стейдж уже устаканился?
Пробовал подписываться в конструкторе на stage.addEventListener(Event.RESIZE, start); но он вообще не вызывается.
тестю на air sdk 20.0.0

illuzor 29.01.2016 15:25

Странно, что не вызывается. Код в студию

undefined 29.01.2016 15:40

Код AS3:

public function Main():void {
                        tf = new TextField();
                        tf.textColor = 0xFF0000;
                        NativeApplication.nativeApplication.autoExit = true;
                        stage.addEventListener(Event.DEACTIVATE, deactivate);
                        NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, handleKeys,false,int.MAX_VALUE);
                        //NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.NORMAL;
                        if (Capabilities.cpuArchitecture == "ARM") {
                                stage.addChild(tf);
                                tf.text = "started";
                                stage.addEventListener(Event.RESIZE, start);
                } else {
                        if (stage)
                                start();
                        else
                                addEventListener(Event.ADDED_TO_STAGE, start);
                }
}
public function start(e:Event = null):void {
                        tf.text = "ready";
....
}

На экране вижу started

Добавлено через 3 минуты
illuzor, загляни плз в личку

caseyryan 29.01.2016 18:30

Есть ещё orientationChanging. Но вряд ли он тебе пригодится. А в application.xml приписал ориентацию экрана?

undefined 29.01.2016 18:42

да, стоит autoOrients,aspect ratio - landscape.Проблема не только при смене ориентации, там еще системная панелька сверху убирается только после старта приложения.Проверить без смены ориентации не могу т.к. раб. стол андройда всегда в портретной ориентации.
caseyryan,ты можешь собрать простенькое приложение с таким кодом:
Код AS3:

...
private var tf:TextField;
public function Main():void {
tf = new TextField();
tf.textColor = 0xFF0000;
tf.text=stage.stageWidth+"x"+stage.stageHeight;
addChild(tf);
}

и глянуть будет ли стейдж соответствовать разрешению девайса?Думаю может это у меня тел кривой?


Часовой пояс GMT +4, время: 08:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.