Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.05.2011, 22:03
Alexd21 вне форума Посмотреть профиль Отправить личное сообщение для Alexd21 Найти все сообщения от Alexd21
  № 1  
Ответить с цитированием
Alexd21

Регистрация: Jan 2011
Сообщений: 49
По умолчанию Как реализовать полноэкранный режим в игре?

В игре требуется реализовать полноэкранный режим.

Структура отображения графики на флешке следующая:

спрайты наложенные друг на друга и в каждом спрайте нарисованы элементы
1 спрайт: фон
2 спрайт: все элементы управления
3. главные герои
4 спрайт окна сообщений

При переходе в полноэкранный режим растягиваются все спрайты одновременно.
Как сделать чтобы растягивался только фон, а элементы управления расползались по краям без искажений?

варианты решений использующие html и javascript не подходят, т.к. игра звгружается на платформу вконтакте.
Нужно решение средствами as3.

Старый 05.05.2011, 22:07
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Стандарт:
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
ловить события Event.RESIZE у stage и смотреть изменение stage.stagеWidth и stage.stageHeight.

Старый 05.05.2011, 22:17
Alexd21 вне форума Посмотреть профиль Отправить личное сообщение для Alexd21 Найти все сообщения от Alexd21
  № 3  
Ответить с цитированием
Alexd21

Регистрация: Jan 2011
Сообщений: 49
Цитата:
Сообщение от expl Посмотреть сообщение
Стандарт:
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
ловить события Event.RESIZE у stage и смотреть изменение stage.stagеWidth и stage.stageHeight.
Вопрос был:Как сделать чтобы растягивался только фон?
при использовании StageScaleMode.NO_SCALE не растягивается ничего вообще. А просто осуществляется переход без искажений. А расятнуть один слой всетаки нужно.


Заранее спасибо тем кто даст конкретный ответ без теоретических выкладок.


Последний раз редактировалось Alexd21; 05.05.2011 в 22:20.
Старый 05.05.2011, 22:29
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 4  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
все верно вам сказали. Дальше ручками перечитываете позиции всех элементов

Старый 05.05.2011, 22:34
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 5  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Код AS3:
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.
Старый 05.05.2011, 22:37
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 6  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Заранее спасибо тем кто даст конкретный ответ без теоретических выкладок.
Без теоретических выкладок внапряг

Для того чтобы растянуть что-то одно, видимо у стейджа таки должен стоять режим
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
А потом уже как вам выше ответили отлавливать событие ресайза и опираясь на полученные новые размеры стейджа просчитать скейл для фона и применить этот скейл к фону.

Всего-то и нужно просто вникнуть в то что вам отвечают, по сути ничего нового к предыдущему ответу я не добавил)

Добавлено через 37 секунд
о как)))

Пока писал столько наотвечали)
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 05.05.2011, 22:55
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 7  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
вроде есть какие то скрипты для автообработки ресайза? не?

Старый 05.05.2011, 22:57
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 8  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
вроде есть какие то скрипты для автообработки ресайза? не?
Гугл, не?))

Там собственно обрабатывать то нечего. Пытался по началу юзать какой-то фреймворк (там весь фреймворк на 300 строк кода тянет не больше), потом понял что нуевонафиг и пишу такой фреймворк руками под каждый проект.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 05.05.2011, 23:14
Alexd21 вне форума Посмотреть профиль Отправить личное сообщение для Alexd21 Найти все сообщения от Alexd21
  № 9  
Ответить с цитированием
Alexd21

Регистрация: Jan 2011
Сообщений: 49
может поделитесь своим фреймворком?

Старый 05.05.2011, 23:17
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 10  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Для игры маловероятно что-то универсальное...
МВЦ пробуй.

А для сайтов собственно могу, но надо ли, я его и сам не пользую в виду унылости...
__________________
Кто к нам с чем для чего - тот у нас того от того.

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
Stage.scaleMode , StageScaleMode.NO_SCALE
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:19.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.