![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 2
|
Доброе время суток!
Занимался флэшем на делитантском как теперь понял уровне раньше. Тут нада сделать резиновый баннер, проблема в том, что элементы мувика уже анимированы и двигаются по центру баннера с фиксированной шириной. Нужно слева и справа поидее продлить черный фон у баннера(слева и справа от фикс. ширины). Пробовал поотдельности посчитать ширину и продлить фон квадратика слева и справа по примеру http://noregret.org/tutor/elastic/. Но не оч получилось, точнее ноль реакции вообще. Сейчас есть идея (если это возможно) объединить баннер в 1 мувиклип и закинуть его в другой баннер, в котором бы был черный фон, растягивающийся по горизонтали в зависимости от размеров окна и поверх него поцентру этот мувиклип который через AS тоже отцентровать. Следовательно вопросы: 1) Как запихнуть баннер в мувиклип(что то типа аналога Smart Object в Photoshop), назначить ему имя и возможно ли это? 2) Может есть какое-то другое более логичное решение? 3) Ниже приведу код, которым собираюсь организовывать это все, может там тоже что-то нада поправить: Stage.scaleMode = "noScale"; // создадим объект Listener1 = {}; // создадим метод onResize Listener1.onResize = function () { bg._width = Stage.width; clip._x = (Stage.width/2) - clip._width; } Stage.addListener(Listener1); Поиск юзал, искал не только на этом форуме(ключ: "резиновый") но и ... да где тока не искал. Буду очень благодарен за помощь и совет. Слой для AS создавал подо всеми слоями и в первом кадре писал этот код. Добавлено через 11 часов 21 минуту Поставим вопрос по-другому, я кидаю исходник уже готового баннера но с фиксированной шириной. Нужно поместить этот баннер на тянущийся в ширину фон по середине. Цена вопроса 10$. Добавлено через 33 часа 51 минуту Сделал сам, работает почти так как нада, но не совсем. При загрузке Флэш-баннера он не ратсягивается на 100%, а когда начинаешь менять ширину окна, Флэшка делает все как нада - центруется и продливает фон. Сделано по принципе который я опсиал выше: 1) я создал фон - это черный прямоугольник 2)поверх фона создал прозрачнй прямоугольник шириной на всю сцену(950пх), конвертил егов мувиклип,обозвал, и запихнул в него все что должно происходить по центру мувика. 3) Созда еще один слой в первом кадре AS-ом оцентровал мувиклип с пункта №2 и растянул на ширину Stage.width черный прямоугольник. Почему так сранно работает? Как сделать что бы все что происходит у меня при изменении размеров окна происходило сразу же при загрузке Флэш-баннера? ![]() |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 9
|
У меня такая же проблема, только я разворачиваю на весь экран командой fscommand("fullscreen",true);
и естественно все объекты растягиваются ![]() Как бы от этого избавиться и сохранить пропорции? |
|
|||||
|
Модрон-ветеринар
|
Цитата:
Используйте уменьшение масштаба / сокрытия нужных элементов при переходе в полный экран и восстановления до 100% других, ради которых полный экран и затевается. Я делал плеер, приведу пример оттуда. Это там реализован именно так, когда фильм раскрывается во весь экран. При этом при добавлении видеообъекта я задал ему область во всю сцену, а потом в нормальном режиме сократил до 40%. Когда идет раскрытие во весь экран, функция просто восстанавливает его масштаб до родного 100%. А поскольку при этом видеообласть занимала всю сцену (при монтаже так было сделано), то фильм просто стал занимать весь экран. При выходе из режима fullscreen область видео опять занимает 40% и при этом выглядит так, как было задумано в нормальном режиме. То есть принцип такой - создавайте все объекты так, как они будут выглядеть в режиме "во весь экран", а потом делайте им обратное масштабирование с уменьшением так, чтобы их размеры были как в нормальном режиме. Напишите аналогичную функцию, которая бы управляла масштабированием. Привожу код ради идеи. 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. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 2
|
я полностью разобрался со своим вопросом, пришлось дописать еще одного слушателя и еще одну функцию для изменения рулика после загрузки.
|
|
|||||
|
Регистрация: Jan 2010
Сообщений: 9
|
Цитата:
|
|
|||||
|
Кто знает как сделать, чтобы баннер растягивался в обе стороны только по ширине, а высота оставалась фиксированной? На сайте резиновая вёрстка, нужно как-то баннер растянуть, чтобы не смотрелся заплаткой.
|
|
|||||
|
Модрон-ветеринар
|
Попробуйте сделать на странице блок с шириной 100% и опубликовать в него флешку, ей также для публикации выставить 100% ширины.
Последний раз редактировалось mooncar; 26.01.2010 в 16:38. |
|
|||||
|
В том и вопрос: как сделать у флеша 100% ширины без изменения высоты? В настройках ширина в процентах не задаётся.
Добавлено через 7 минут Только не нужно советовать задать в поиске "резиновый" и давать ссылку на пример - http://noregret.org/tutor/elastic/ - в этом примере баннер просто растягивается на весь экран по высоте и ширине так, что все объекты деформируются. |
|
|||||
|
Модрон-ветеринар
|
Да, действительно, вместе не получается.
Но есть решение. Сейчас сформулирую. Добавлено через 23 минуты Есть варианты, зависящие от сценария растягивания. Вопрос вам - что у вас должно растягиваться по ширине при растягивании баннера? 1) Во флешке есть фон с повторяющимися элементами, и они должны размножаться вправо и влево от основного сюжета? 2) Или фон во флешке однородный и может быть деформирован в ширину при растяжении, а базовый сюжет - нет? Добавлено через 33 минуты Если первый вариант, то можно нарисовать внутри баннера вправо и влево какие-то элементы и сделать код публикации так (скачайте себе SWFObject 2 версии для этого, если публикуете сейчас без него): <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>rubber</title>
<script type="text/javascript" src="swfobject.js"></script>
<script language="javascript">
var Flashvars = false;
var Params= {
menu: "false",
allowScriptAccess: "sameDomain",
allowFullScreen: "false",
quality: "high",
bgcolor: "#000000",
wmode: "transparent",
scale: "noscale"
};
var Attributes = { align: "middle" }
};
swfobject.embedSWF("rubber.swf", "rubber", "100%", "100%", "9.0.0", "expressInstall.swf", Flashvars, Params, Attributes);
</script>
</head>
<body bgcolor="#cccccc">
<div style="height:200px; width:100%;">
<div id="rubber">
Здесь будет флешка.
</div>
</div>
</body>
</html>
Тогда задаем два блока - внешнему <div> задем 200px высоты и 100% ширины, а публикуем флешку во внутренний с id="rubber", выставляя ей 100% в обеих измерениях и режим scale: "noscale". То есть в сухом остатке флеш тут получается не "резиновым", а "резиновой" делается область его видимости. Последний раз редактировалось mooncar; 26.01.2010 в 17:38. |
|
|||||
|
Модрон-ветеринар
|
Вот, посмотрите на результат, что получается:
http://www.us-pro.ru/mooncar/rubber/rubber.html Исходники приложил... |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|