|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2011
Сообщений: 49
|
Как реализовать полноэкранный режим в игре?
В игре требуется реализовать полноэкранный режим.
Структура отображения графики на флешке следующая: спрайты наложенные друг на друга и в каждом спрайте нарисованы элементы 1 спрайт: фон 2 спрайт: все элементы управления 3. главные герои 4 спрайт окна сообщений При переходе в полноэкранный режим растягиваются все спрайты одновременно. Как сделать чтобы растягивался только фон, а элементы управления расползались по краям без искажений? варианты решений использующие html и javascript не подходят, т.к. игра звгружается на платформу вконтакте. Нужно решение средствами as3. |
|
|||||
Регистрация: Jan 2011
Сообщений: 49
|
Цитата:
при использовании StageScaleMode.NO_SCALE не растягивается ничего вообще. А просто осуществляется переход без искажений. А расятнуть один слой всетаки нужно. Заранее спасибо тем кто даст конкретный ответ без теоретических выкладок. Последний раз редактировалось Alexd21; 05.05.2011 в 22:20. |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
все верно вам сказали. Дальше ручками перечитываете позиции всех элементов
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; public class Main extends Sprite { private var backgroundSprite:Sprite; private var someButton:Sprite; public function Main():void { // Отключение масштабирования и задание выравнивания по верхнему левому краю. stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; // Фон backgroundSprite = new Sprite(); backgroundSprite.graphics.beginFill(0x000000); backgroundSprite.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); backgroundSprite.graphics.endFill(); addChild(backgroundSprite); // Некоторая кнопка. someButton = new Sprite(); someButton.graphics.beginFill(0xFF0000); someButton.graphics.drawRect(0, 0, 50, 20); someButton.graphics.endFill(); someButton.x = stage.stageWidth - someButton.width - 10; someButton.y = stage.stageHeight - someButton.height - 10; addChild(someButton); // Регистрация слушателя события. stage.addEventListener(Event.RESIZE, onStageResize); } private function onStageResize(event:Event):void { // Изменение габаритов фона. backgroundSprite.width = stage.stageWidth; backgroundSprite.height = stage.stageHeight; // Изменение координат кнопки. someButton.x = stage.stageWidth - someButton.width - 10; someButton.y = stage.stageHeight - someButton.height - 10; } } } Последний раз редактировалось TWETTI; 05.05.2011 в 22:40. |
|
|||||
Цитата:
Для того чтобы растянуть что-то одно, видимо у стейджа таки должен стоять режим А потом уже как вам выше ответили отлавливать событие ресайза и опираясь на полученные новые размеры стейджа просчитать скейл для фона и применить этот скейл к фону. Всего-то и нужно просто вникнуть в то что вам отвечают, по сути ничего нового к предыдущему ответу я не добавил) Добавлено через 37 секунд о как))) Пока писал столько наотвечали)
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
Цитата:
Там собственно обрабатывать то нечего. Пытался по началу юзать какой-то фреймворк (там весь фреймворк на 300 строк кода тянет не больше), потом понял что нуевонафиг и пишу такой фреймворк руками под каждый проект.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
Регистрация: Jan 2011
Сообщений: 49
|
может поделитесь своим фреймворком?
|
|
|||||
Для игры маловероятно что-то универсальное...
МВЦ пробуй. А для сайтов собственно могу, но надо ли, я его и сам не пользую в виду унылости...
__________________
Кто к нам с чем для чего - тот у нас того от того. |
Часовой пояс GMT +4, время: 20:04. |
|
« Предыдущая тема | Следующая тема » |
Теги |
Stage.scaleMode , StageScaleMode.NO_SCALE |
|
|