Просмотр полной версии : Ожидание инициализации стейджа в AIR
undefined
29.01.2016, 14:17
Имеется следующая проблема:
При запуске приложения на телефоне к моменту, когда выполняется конструктор Main,телефон еще не сменил ориентацию либо не скрыл системную панель из-за чего габариты стейджа stageWidth,stageHeight определяются неверно.Если выждать 2-3 секунды и после этого стартовать приложение - все ок.
Вопрос: есть ли какой-нибудь ивент чтоб понять,что стейдж уже устаканился?
Пробовал подписываться в конструкторе на stage.addEventListener(Event.RESIZE, start); но он вообще не вызывается.
тестю на air sdk 20.0.0
Странно, что не вызывается. Код в студию
undefined
29.01.2016, 15:40
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,ты можешь собрать простенькое приложение с таким кодом:
...
private var tf:TextField;
public function Main():void {
tf = new TextField();
tf.textColor = 0xFF0000;
tf.text=stage.stageWidth+"x"+stage.stageHeight;
addChild(tf);
}
и глянуть будет ли стейдж соответствовать разрешению девайса?Думаю может это у меня тел кривой?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.