air для android - stage.setOrientation устарела в AIR 2.5, так как мне теперь это сделать? - PullRequest
0 голосов
/ 31 декабря 2010

as3 air для Android с использованием Flash CS5

моя проблема: тестирование приложения AIR на моем глобальном droid 2 (с выдвижной клавиатурой) с использованием stage.addEventListener (StageOrientationEvent.ORIENTATION_CHANGE, handleOrientationChange);Это срабатывает только когда я выдвигаю клавиатуру, а не когда я поворачиваю телефон.Я пробовал это с включенной и выключенной автоматической ориентацией и с аспектом портретной и альбомной ориентации.

на самом деле опция автоматической ориентации, кажется, не имеет значения, включается или выключается.

Мне нужноориентация, чтобы измениться, когда я поворачиваю телефон.Я знаю, что могу использовать акселерометр для этого, но проблема в том, что когда я нажимаю на текстовое поле с закрытой клавиатурой, выскакивает только вертикальная клавиатура, а мне нужно, чтобы другая всплывала при удерживании телефона в стороны.

Ответы [ 2 ]

1 голос
/ 11 января 2011

Я разместил в своем блоге решение, совместимое с кроссплатформенностью:

http://digitale -avantgarde.com / aimtierungslos /

Как вы можете заметить, этона немецком, но вы можете перевести его с помощью Google!

Я был бы очень признателен, если вы прокомментируете мой блог;)

Если вы полностью потерялись (и не желаетеспросите), вы можете просто скачать класс StageOrientationObserver в конце статьи и перейти на золото, используя этот код:

import com.digitaleavantgarde.StageOrientationObserver;

var observer = StageOrientationObserver.instance;
observer.addEventListener( StageOrientationEvent.ORIENTATION_CHANGE, onOrientationChange);
function onOrientationChange(evt:StageOrientationEvent):void
    {
        switch (evt.afterOrientation) {
            case StageOrientation.DEFAULT:
                trace("DEFAULT");
            break;
            case StageOrientation.ROTATED_RIGHT:
                    trace("ROTATED_RIGHT");
                    break;
            case StageOrientation.ROTATED_LEFT:
                trace("ROTATED_LEFT");
            break;
            case StageOrientation.UPSIDE_DOWN:
                trace("UPSIDE_DOWN");
            break;
        }
}
1 голос
/ 02 января 2011

У меня такая же проблема. Немного исследовал и узнал про stage.setAspectRatio. Это не очень много для меня, но, может быть, вы могли бы что-нибудь понять.

stage.setAspectRatio(StageAspectRatio.LANDSCAPE); //LANDSCAPE or PORTRAIT

Дайте мне знать, если вы узнаете еще что-нибудь!

...