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

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

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

Регистрация: Jan 2010
Сообщений: 2
По умолчанию Резиновый Флэш с ориентацией по центру.

Доброе время суток!
Занимался флэшем на делитантском как теперь понял уровне раньше.
Тут нада сделать резиновый баннер, проблема в том, что элементы мувика уже анимированы и двигаются по центру баннера с фиксированной шириной. Нужно слева и справа поидее продлить черный фон у баннера(слева и справа от фикс. ширины).
Пробовал поотдельности посчитать ширину и продлить фон квадратика слева и справа по примеру http://noregret.org/tutor/elastic/. Но не оч получилось, точнее ноль реакции вообще. Сейчас есть идея (если это возможно) объединить баннер в 1 мувиклип и закинуть его в другой баннер, в котором бы был черный фон, растягивающийся по горизонтали в зависимости от размеров окна и поверх него поцентру этот мувиклип который через AS тоже отцентровать.
Следовательно вопросы:
1) Как запихнуть баннер в мувиклип(что то типа аналога Smart Object в Photoshop), назначить ему имя и возможно ли это?
2) Может есть какое-то другое более логичное решение?
3) Ниже приведу код, которым собираюсь организовывать это все, может там тоже что-то нада поправить:
Код AS1/AS2:
Stage.scaleMode = "noScale";
 
// создадим объект
Listener1 = {};
// создадим метод onResize
Listener1.onResize = function () {
bg._width = Stage.width;
clip._x = (Stage.width/2) - clip._width;
}
 
Stage.addListener(Listener1);
Где clip - имя мувиклипа который объеденен, bg - имя прямогульник под ним(автофигуры).

Поиск юзал, искал не только на этом форуме(ключ: "резиновый") но и ... да где тока не искал. Буду очень благодарен за помощь и совет. Слой для AS создавал подо всеми слоями и в первом кадре писал этот код.

Добавлено через 11 часов 21 минуту
Поставим вопрос по-другому, я кидаю исходник уже готового баннера но с фиксированной шириной. Нужно поместить этот баннер на тянущийся в ширину фон по середине. Цена вопроса 10$.

Добавлено через 33 часа 51 минуту
Сделал сам, работает почти так как нада, но не совсем.
При загрузке Флэш-баннера он не ратсягивается на 100%, а когда начинаешь менять ширину окна, Флэшка делает все как нада - центруется и продливает фон. Сделано по принципе который я опсиал выше:
1) я создал фон - это черный прямоугольник
2)поверх фона создал прозрачнй прямоугольник шириной на всю сцену(950пх), конвертил егов мувиклип,обозвал, и запихнул в него все что должно происходить по центру мувика.
3) Созда еще один слой в первом кадре AS-ом оцентровал мувиклип с пункта №2 и растянул на ширину Stage.width черный прямоугольник.

Почему так сранно работает? Как сделать что бы все что происходит у меня при изменении размеров окна происходило сразу же при загрузке Флэш-баннера?

Старый 19.01.2010, 01:29
nondescript вне форума Посмотреть профиль Отправить личное сообщение для nondescript Найти все сообщения от nondescript
  № 2  
Ответить с цитированием
nondescript

Регистрация: Jan 2010
Сообщений: 9
У меня такая же проблема, только я разворачиваю на весь экран командой fscommand("fullscreen",true);
и естественно все объекты растягиваются

Как бы от этого избавиться и сохранить пропорции?

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от nondescript Посмотреть сообщение
У меня такая же проблема, только я разворачиваю на весь экран командой fscommand("fullscreen",true);
и естественно все объекты растягиваются

Как бы от этого избавиться и сохранить пропорции?
Stage.scaleMode = 'noscale'; разве не препятствует растяжению объектов ролика?

Используйте уменьшение масштаба / сокрытия нужных элементов при переходе в полный экран и восстановления до 100% других, ради которых полный экран и затевается. Я делал плеер, приведу пример оттуда. Это там реализован именно так, когда фильм раскрывается во весь экран. При этом при добавлении видеообъекта я задал ему область во всю сцену, а потом в нормальном режиме сократил до 40%. Когда идет раскрытие во весь экран, функция просто восстанавливает его масштаб до родного 100%. А поскольку при этом видеообласть занимала всю сцену (при монтаже так было сделано), то фильм просто стал занимать весь экран.

При выходе из режима fullscreen область видео опять занимает 40% и при этом выглядит так, как было задумано в нормальном режиме.
То есть принцип такой - создавайте все объекты так, как они будут выглядеть в режиме "во весь экран", а потом делайте им обратное масштабирование с уменьшением так, чтобы их размеры были как в нормальном режиме. Напишите аналогичную функцию, которая бы управляла масштабированием.

Привожу код ради идеи.
Код AS1/AS2:
var stageListener:Object = new Object();
Stage.addListener(stageListener);
stageListener.onFullScreen = fScreen;
 
/// ОТРАБОТКА ПОЛНОГО ЭКРАНА ////////////////////////////////////
function fScreen(bFull:Boolean) {
	if (bFull) {
		player_mc.video_cont._xscale = player_mc.video_cont._yscale = 100;
	}
	else {
		player_mc.video_cont._xscale = player_mc.video_cont._yscale = 40;
	}
 
}
 
fsb.onRelease = function() {
	Stage.displayState = 'fullscreen';
};
 
closefs_btn.onRelease = function  () {
	Stage.displayState = 'normal';
};


Последний раз редактировалось mooncar; 19.01.2010 в 11:19.
Старый 20.01.2010, 19:44
nondescript вне форума Посмотреть профиль Отправить личное сообщение для nondescript Найти все сообщения от nondescript
  № 4  
Ответить с цитированием
nondescript

Регистрация: Jan 2010
Сообщений: 9
Цитата:
Сообщение от mooncar Посмотреть сообщение
Stage.scaleMode = 'noscale'; разве не препятствует растяжению объектов ролика?
Я сделал по другому, всего 4 строки. У меня задача была развернуть на весь экран бэкграунд а обьекты оставить в исходном размере.
Код AS1/AS2:
fscommand("fullscreen",true); // запускает на весь экран
fscommand("allowscale",false); // запрещаем растягивание
fscommand("showmenu",false); // убераем меню
fscommand("trapallkeys",true); // запрещаем КЛАВИАТУРУ (Esc и сочетания)

Старый 19.01.2010, 23:44
Challenger вне форума Посмотреть профиль Отправить личное сообщение для Challenger Найти все сообщения от Challenger
  № 5  
Ответить с цитированием
Challenger

Регистрация: Jan 2010
Сообщений: 2
я полностью разобрался со своим вопросом, пришлось дописать еще одного слушателя и еще одну функцию для изменения рулика после загрузки.

Старый 22.10.2010, 18:48
Cosmobomja23 вне форума Посмотреть профиль Отправить личное сообщение для Cosmobomja23 Найти все сообщения от Cosmobomja23
  № 6  
Ответить с цитированием
Cosmobomja23

Регистрация: Oct 2010
Сообщений: 12
Цитата:
Сообщение от Challenger Посмотреть сообщение
я полностью разобрался со своим вопросом, пришлось дописать еще одного слушателя и еще одну функцию для изменения рулика после загрузки.
Может выложить код слушателя и функции?

Старый 26.01.2010, 16:19
tanjasun вне форума Посмотреть профиль Отправить личное сообщение для tanjasun Посетить домашнюю страницу tanjasun Найти все сообщения от tanjasun
  № 7  
Ответить с цитированием
tanjasun

Регистрация: Mar 2004
Адрес: Красноярск
Сообщений: 31
Отправить сообщение для tanjasun с помощью ICQ
Кто знает как сделать, чтобы баннер растягивался в обе стороны только по ширине, а высота оставалась фиксированной? На сайте резиновая вёрстка, нужно как-то баннер растянуть, чтобы не смотрелся заплаткой.
__________________
Работаем...
www.oksite.ru

Старый 26.01.2010, 16:27
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Попробуйте сделать на странице блок с шириной 100% и опубликовать в него флешку, ей также для публикации выставить 100% ширины.


Последний раз редактировалось mooncar; 26.01.2010 в 16:38.
Старый 26.01.2010, 16:38
tanjasun вне форума Посмотреть профиль Отправить личное сообщение для tanjasun Посетить домашнюю страницу tanjasun Найти все сообщения от tanjasun
  № 9  
Ответить с цитированием
tanjasun

Регистрация: Mar 2004
Адрес: Красноярск
Сообщений: 31
Отправить сообщение для tanjasun с помощью ICQ
В том и вопрос: как сделать у флеша 100% ширины без изменения высоты? В настройках ширина в процентах не задаётся.

Добавлено через 7 минут
Только не нужно советовать задать в поиске "резиновый" и давать ссылку на пример - http://noregret.org/tutor/elastic/ - в этом примере баннер просто растягивается на весь экран по высоте и ширине так, что все объекты деформируются.
__________________
Работаем...
www.oksite.ru

Старый 15.03.2010, 18:34
marook вне форума Посмотреть профиль Отправить личное сообщение для marook Найти все сообщения от marook
  № 10  
Ответить с цитированием
marook

Регистрация: Feb 2010
Сообщений: 4
Цитата:
Сообщение от tanjasun Посмотреть сообщение
В том и вопрос: как сделать у флеша 100% ширины без изменения высоты? В настройках ширина в процентах не задаётся.

Добавлено через 7 минут
Только не нужно советовать задать в поиске "резиновый" и давать ссылку на пример - http://noregret.org/tutor/elastic/ - в этом примере баннер просто растягивается на весь экран по высоте и ширине так, что все объекты деформируются.

Видимо не до конца прочитали, там очень подробно написано как сделать 100% ширины без изменения высоты и наоборот.

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

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

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


 


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


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