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

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

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

Регистрация: Jan 2011
Сообщений: 29
По умолчанию Сохранение размеров и резиновость объектов при full screen

Приветствую.
Недавно спрашивал на счет бегущей строки. Спасибо за помощь
Теперь, во время разработки видеоплеера, у меня возникла еще одна проблема. Есть кнопка, отвечающая за full screen. Она работает, но. При переходе в полноэкранный режим, увеличиваются все элементы плеера. Как сделать так, чтобы объекты сохраняли свой первоначальный размер? Хелпер по AS3 не дал ответа.
Код AS3:
private function fullHandler():void
		{
			if(stage.displayState==StageDisplayState.FULL_SCREEN)
			{
				stage.displayState=StageDisplayState.NORMAL;
			}else
			{
				stage.displayState=StageDisplayState.FULL_SCREEN;
			}
		}
Вторая проблема. Как растянуть элементы по ширине, сохраняя их пропорции. То есть сделать просматриваемое видео и меню управления резиновым, как например на ютубе?

Во вложение исходники.
P.S Что касается последней проблемы с резиновастью. На мой взгляд, просить сделать это за спасибо нагло. Поэтому, если есть желающие помочь за символическую оплату, прошу в скайп xxpanzer_generalxx

Нашел как сделать full screen который занимает все рабочее пространство. Но не соблюдаются пропорции
Код AS3:
private function fullHandler():void
		{
			trace(stage.scaleMode);
			if (stage.displayState == StageDisplayState.NORMAL)
			{
				stage.scaleMode = StageScaleMode.EXACT_FIT;
				stage.displayState = StageDisplayState.FULL_SCREEN;
			}
			else
			{
				stage.displayState = StageDisplayState.NORMAL;
			}
		}
Вложения
Тип файла: zip Player.zip (816.0 Кб, 43 просмотров)

Старый 19.11.2013, 11:25
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 2  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Цитата:
Как сделать так, чтобы объекты сохраняли свой первоначальный размер?
Так попробуйте:
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;

Старый 19.11.2013, 11:30
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 3  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Отключаете автоматическое масштабирование как сказали выше, подписываетесь на событие Event.RESIZE от stage и при его наступлении пересчитываете положение и размеры всех элементов, опираясь на размеры окна отображения плеера (stage.stageWidth и stage.stageHeight). Это и называется "резиной".
Никакого магического сделатьВсёХорошо(); нет. Плеер не может угадывать, что и как Вам хочется растягивать и перемещать. Придется это описывать ручками.
__________________
Reality.getBounds(this);

Старый 19.11.2013, 12:24
General303 вне форума Посмотреть профиль Отправить личное сообщение для General303 Найти все сообщения от General303
  № 4  
Ответить с цитированием
General303
 
Аватар для General303

Регистрация: Jan 2011
Сообщений: 29
Можете показать наглядный пример с fullscreen?

Старый 19.11.2013, 12:28
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 5  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
General303, на ютьюбе есть наглядный пример. И очень много уроков есть, стоит лишь поискать.
__________________
hauts.ru

Старый 19.11.2013, 13:35
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
package 
{
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageDisplayState;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Rectangle;
 
	public class Main extends Sprite 
	{
		private var _topBar:Sprite;
		private var _statusBar:Sprite;
		private var _leftBar:Sprite;
		private var _rightBar:Sprite;
		private var _centerButton:Sprite;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
 
			_topBar = coloredRect(0xAAAAAA, 20, 20, 10);
			super.addChild(_topBar);
 
			_statusBar = coloredRect(0xAAAAAA, 40, 40, 10);
			super.addChild(_statusBar);
 
			_leftBar = coloredRect(0xAAAAAA, 100, 40, 10);
			super.addChild(_leftBar);
 
			_rightBar = coloredRect(0xAAAAAA, 100, 40, 10);
			super.addChild(_rightBar);
 
			_centerButton = new Sprite();
			_centerButton.graphics.beginFill(0xFF0000);
			_centerButton.graphics.drawCircle(0, 0, 100);
			super.addChild(_centerButton);
			_centerButton.addEventListener(MouseEvent.CLICK, handlerClick);
			redraw();
			stage.addEventListener(Event.RESIZE, handlerResize);
		}
 
		private function handlerClick(e:MouseEvent):void 
		{
			stage.displayState = stage.displayState == StageDisplayState.NORMAL ? StageDisplayState.FULL_SCREEN_INTERACTIVE : StageDisplayState.NORMAL;
		}
 
		private function handlerResize(event:Event):void 
		{
			redraw();
		}
 
		private function redraw():void 
		{
			var w:Number = stage.stageWidth;
			var h:Number = stage.stageHeight;
			//// верхняя панель всегда вверху с отступом по 5 пикселей, растягивается по длине, сохраняя высоту
			_topBar.x = 5;
			_topBar.y = 5;
			_topBar.width = w - 10;
			//// нижняя панель всегда внизу с отступом по 5 пикселей, растягивается по длине, сохраняя высоту
			_statusBar.x = 5;
			_statusBar.y = h - 5 - _statusBar.height;
			_statusBar.width = w - 10;
			//// левая панель всегда слева с отступом 5 пикселей, сохраняет ширину, меняет высоту
			_leftBar.x = 5;
			_leftBar.y = _topBar.y + _topBar.height + 5;
			_leftBar.height = _statusBar.y -_leftBar.y - 5;
			//// правая панель всегда справа  с отступом 5 пикселей, сохраняет ширину, меняет высоту
			_rightBar.x = w - _rightBar.width - 5;
			_rightBar.y = _topBar.y + _topBar.height + 5;
			_rightBar.height = _statusBar.y -_leftBar.y - 5;
			//// круглую кнопку будем держать в центре
			_centerButton.x = w / 2;
			_centerButton.y = h / 2;
		}
 
		private function coloredRect(color:uint, width:Number, height:Number, corner:Number):Sprite
		{
			var s:Sprite = new Sprite();
			var g:Graphics = s.graphics;
			g.beginFill(color);
			g.drawRoundRect(0, 0, width, height, corner);
			s.scale9Grid = new Rectangle(10, 10, 2, 2);
			return s;
		}
	}
}
(Тыкать в красную кнопку или менять размер окна браузера)
RubberWithFullScreen.swf   (1.8 Кб)
Вложения
Тип файла: swf RubberWithFullScreen.swf (1.8 Кб, 131 просмотров)
__________________
Reality.getBounds(this);

Старый 19.11.2013, 13:50
General303 вне форума Посмотреть профиль Отправить личное сообщение для General303 Найти все сообщения от General303
  № 7  
Ответить с цитированием
General303
 
Аватар для General303

Регистрация: Jan 2011
Сообщений: 29
Большое спасибо. Ушел разбираться.

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

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

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


 


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


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