2013-07-14 2 views
0

Я хочу полные размеры моей «сцены» или документа или того, что он назвал. Я только начинал со вспышки, и я смотрел на все без успеха.Получить размеры сцены

Ближайший я пришел, был «stage.height», но он не делает то, что я хотел. Я понял, что «stage.height» возвращает 2x размер моего объекта. Я пытаюсь добиться того, чтобы объект не мог выйти за пределы экрана. Я использую их примерный код ActionScript. Я попытался изменить его, чтобы соответствовать моим потребностям, это отредактированный код (где stage.height не работает, как и ожидалось, ни ширина) ...

function fl_MoveInDirectionOfKey(event:Event) 
{ 
    if (upPressed) 
    { 
     Ball.y = Math.max(0, Ball.y - 5); 
    } 
    if (downPressed) 
    { 
     Ball.y = Math.min(Ball.y + 5, stage.height); 
    } 
    if (leftPressed) 
    { 
     Ball.x = Math.max(0, Ball.x - 5); 
    } 
    if (rightPressed) 
    { 
     Ball.x = Math.min(Ball.x + 5, stage.width); 
    } 
} 

ответ

3

Вы должны использовать «stage.stageWidth» для ширины этап или "stage.stageHeight" для высоты сцены.

Помните, что если вы используете вложенные видеоклипы в свой Flash-проект и хотите управлять некоторыми объектами в них; лучше x и y координаты ваших клипов, содержащих ваши объекты, установленные в нулевые значения; если для координат x и y установлено другое значение, вы должны найти некоторые вычисления для достижения того, что вы хотите сделать.

Если вы хотите узнать о различиях между stage.stageWidth и stage.width или Stage.stageHeight и stage.height, пожалуйста, проверьте следующие ссылки:

Difference between calling stage.width and stage.stageWidth?

Difference between stage.width and stage.stageWidth

Для лучшего понимания , Я опишу его на примере.

Представьте, что у нас есть сцена с шириной 1024px и высотой 768 пикселей. Мы создаем символ мувиклипа на сцене в координатах 30px x и 70px y. Теперь мы добавляем что-то в этот клип и устанавливаем координаты x и y в нулевое значение. Если мы вернемся к временной шкале корня (основной этап), объект клипа будет установлен в координатах 30px x и 70px y не в 0. Если мы хотим установить координаты x и y объекта на координаты x и y сцены, мы должен установить -30px для x и -70px для y. в этой ситуации мы должны сделать некоторые вычисления для правильного управления нашим объектом в клипе для того, что мы хотим сделать.

Я создан для вас примером. Пожалуйста, проверьте его:

Objects Movement

Если вы хотите, чтобы ваши объекты остаются на той стадии, когда стадия изменяет размер, вы должны изменить «Режим масштабирования» ступени к Нет Scale и «Align» этапа к "Top Left" следующим образом:

import flash.display.StageScaleMode; 

stage.align = StageAlign.TOP_LEFT; 
stage.scaleMode = StageScaleMode.NO_SCALE; 

, а затем вы должны добавить «Изменить размер» событие на ваш уровень.

import flash.events.Event; 

stage.addEventListener(Event.RESIZE, stage_Resize); 

function stage_Resize(event:Event):void 
{ 
    enter your codes here 
} 

С добавлением Resize событие, когда этап изменяет размер конечных пользователей, ваши коды в случае изменения размера будут уволены.

Пожалуйста, проверьте следующий пример:

4Shared -> Resize Example

SendSpace -> Resize Example

+0

Ах да ... ты прав! Я тоже это пробовал, но тогда объект смог выйти за сцену. Но теперь, когда я отлаживал это, я понял, что, очевидно, мне пришлось включить и высоту объектов в вычисления. Я не проверял ваши примеры, извините. Мне не хотелось регистрироваться на этом сайте или загружать их менеджер загрузки ... Спасибо за всю помощь и дополнительную информацию, это было полезно. – Colandus

Смежные вопросы