Flash: Stage.FullscreenInteractive -> Разница между классом или первым кадром - PullRequest
0 голосов
/ 06 января 2010

пример 1: 1-й кадр моего приложения

    var screenBounds = Screen.mainScreen.bounds; //Bounds of current screen
    var full:Sprite = new Sprite(); //Sprite Fullscreen
    //Enter Fullscreen 
function goFullScreen(e:Event = null) {
    //myClass.goFullscreen();
    full.graphics.clear();
    full.graphics.beginFill(0xccff00);
    full.graphics.drawRect(0,0,screenBounds.width, screenBounds.height);
    full.graphics.endFill();
    addChild(full);
    this.stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
}  

пример 2: нормаль как пакет класса

    private var full:Sprite = new Sprite(); //Sprite to show fullscreen        
    private var screenBounds = Screen.mainScreen.bounds; //Bounds of current screen
public function favoritesFullscreen():void {
    full.graphics.clear();
    full.graphics.beginFill(0xccff00);
    full.graphics.drawRect(0,0,screenBounds.width, screenBounds.height);
    full.graphics.endFill();
    addChild(full);
    this.stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
}  

Итак, скажите мне ГДЕ РАЗНИЦА? Знаете, я макузер, наверху меню, и в моем случае док-станция выровнена влево

Это странно, но пример 1 делает именно то, что должен. Создает полноэкранный прямоугольник по всему экрану (от 0,0 до правого нижнего края)

Однако пример 2 вычисляет ширину верхней строки меню и док-станции и запускает полноэкранный прямоугольник примерно в 40 пикселях от левого края экрана (док-станции) и в 20 пикселях от верхней части (меню) ... i не понимаю, почему внешний класс действует иначе, чем в первом кадре.

??? спасибо за помощь!

1 Ответ

0 голосов
/ 06 января 2010

Я предполагаю, что это связано с получением Screen.mainScreen.bounds. Во время компиляции flash внутренне перемещает весь код кадра внутри функций в DocumentClass и вызывает их после полной инициализации этапа. Итак, в первом примере вы получаете screenBounds после того, как все инициализировано, но во втором примере вы делаете это намного раньше.

Я полагаю, что ожидания события ADDED_TO_STAGE будет достаточно. Если это не так, первое отправленное событие ENTER_FRAME должно определенно работать.

...