Отображать объекты, не выравнивая правильно - PullRequest
0 голосов
/ 06 января 2010

Я выравниваю свои экранные объекты посередине. stage.stageWidth / 2. по какой-то причине они выравниваются дальше вправо от экрана.

Я ничего не изменил, кроме ширины сцены во вспышке. Кто-нибудь слышал об этой проблеме? Опять же, я ничего не сделал, кроме расширения экрана и регулировки высоты.

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

Моя точка фокусировки на экранном объекте вверху слева. так что он идеально выравнивается при установке на 0,0

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

Ответы [ 2 ]

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

Если вы изменяете размер рабочей области (или, скорее, окна, в которое встроен ваш SWF-файл), вы получите выгоду от использования StageAlign.TOP_LEFT и отключения масштабирования рабочей области (то есть с StageScaleMode.NO_SCALE), как то, что вы делаете. Вы никогда не должны устанавливать stageWidth, хотя он обновляется, когда пользователь изменяет размер сцены. Я не уверен в поведении при этом, поэтому я бы предложил удалить строку три из вашего фрагмента выше и посмотреть, поможет ли это.

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

stage.stageWidth / 2 - точный центр вашей сцены в пикселях слева от сцены.

Скажем, у вас есть объект square размером 100x100 пикселей с точкой регистрации в левом верхнем углу (в точке (0,0), локальной для него).

Если вы хотите, чтобы square находился в центре сцены, вы действительно хотите поместить middle из square в центр сцены, а не в левую сторону square.
Так что вместо square.x = stage.stageWidth / 2;
Используйте square.x = stage.stageWidth / 2 - square.width / 2;, который помещает половину квадрата слева от центра, оставляя другую половину вправо, делая его идеально отцентрированным.

Обратите внимание, что этот метод работает только с объектами, у которых точка регистрации находится на левой границе. Если точка регистрации находилась точно в середине square, то square.x = stage.stageWidth / 2; будет работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...