PDA

Просмотр полной версии : Настройка отображаемой области


The special one
19.12.2011, 15:15
Здравствуйте уважаемые программисты! Я делаю игру, в которой игровое поле имеет размеры 2500 на 2000 пикселей. Во время игры часть игрового поля отображается в окне с примерными размерами 1000 на 700 пикселей. У меня вопрос, как мне программно узнать ширину, высоту и координаты окна (имеется ввиду окно, которое отображает часть игрового поля) относительно игрового поля. Можно ли программно менять ширину, высоту и координаты окна отображения? Можно ли запретить изменение ширины, высоты и координат вручную?

Genzo
19.12.2011, 15:27
Если вы про окно приложения, то это stage главного класса
Если у вас другой контейнер для карты, то просто смотрите его размеры :

mapContainer.addChild(map);
trace(mapContainer.width,mapContainer.height);//1000 700

The special one
19.12.2011, 16:41
У меня карта размером 2500 на 2000, когда я пишу
trace(mapContainer.width,mapContainer.height);//то получаю 2500 2000,
а когда я пишу trace(stage.width,stage.height);//тоже получаю 2500 2000.
У меня монитор отображает только часть карты в окне с примерными размерами 1000 на 700. Я могу менять положение окна и видеть разные участки карты. Например, если я введу
stage.align = StageAlign.TOP_LEFT; то увижу левый верхний участок карты. Если я могу наблюдать разные участки карты меняя положение окна отображения, то карта и окно смещены относительно друг друга. Так вот как мне узнать координаты окна или смещение окна относительно карты.

Genzo
19.12.2011, 17:06
Не добавляйте карту прямо на stage, используйте контейнеры и внутри них ее двигайте. Для ознакомления рекомендую вам почитать о ScrollPane (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/fl/containers/ScrollPane.html#includeExamplesSummary)

alatar
19.12.2011, 17:30
а когда я пишу trace(stage.width,stage.height);//тоже получаю 2500 2000.
trace(stage.stageWidth,stage.stageHeight)

The special one
19.12.2011, 17:32
Спасибо, я все понял.

trace(stage.stageWidth,stage.stageHeight)

Это тоже помогло.