![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
Доброго дня, дорогие!
Вопрос на засыпку: понадобилось сделать баннер-расхлоп. Везде пишут, что изменение размера реальзуется простейшим JS/ Но вот каким - никто не пишет. Помогите, пожалуйста. Напишите, какой JS и куда нужно писать. Всякие RollOver и RollOut на кнопку прописала. Всё работает.. вот только необходимо программное изменение размера по высоте с 90px до 240px, никак реализовать это не могу. |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Маруська, реализация зависит от требований площадки, которые нужно уточнить. Универсальных решений нет, поэтому запрашивайте техтребования, изучайте их и, по возможности, ищите пример.
Вполне возможно, что "расхлоп" баннера делается с помощью двух независимых флэшек. Одна постоянно находится на странице сайта (та, которая маленькая), вторая показывается, когда первая получает событие onRollOver, вызывает некоторый метод js (который площадкой и обеспечивается), при этом вторая габаритно закрывает первую, поэтому выглядит, как "расхлоп".
__________________
hauts.ru |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
всё дело в том, что все тех.требования, которых я добилась от сайта выглядят так:
1. Баннер высотой 1100x90, который при наведении: а) Меняет свою высоту б) Вызывает внешний js файл должен быть один Вот что прислали: "Пусть это будут глобальные функции adCollapse() и adExpand() без параметров" Последний раз редактировалось Маруська; 17.04.2013 в 13:09. Причина: дополнение |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Маруська, очевидно, что информации маловато.
Думаю, что в лучшем случае нужно еще раз запросить у владельцев сайта информацию о том, какой именно js вызывать. Желательно с настойчивой интонацией, конечно. Если скажут, что можно использовать свой js-код, то вам, в принципе, не составит большого труда "дернуть" свой js-метод через ExternalInterface и поменять размеры у баннера. Вообще, по своему опыту (лучше б его не было) скажу — баннеры, особенно те, которые всячески трансформируются — это редкостная морока, большая часть которой связана с передачей информации, а не с реализацией. Сделать примитивный баннер и вызывать некоторый метод на странице — проще простого. Но вот получить достоверную актуальную информацию о том, какой же, все-таки, метод "дергать" — уже проблема. И, чаще всего, она связана с тем, что работает "испорченный телефон" из всякого рода менеджеров, которые ничерта не понимают в техническом плане, но очень стараются своими словами что-то передать или запросить.
__________________
hauts.ru |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
"дернуть" свой js-метод через ExternalInterface
Вот мне - это очень большой труд.. вообще не секу в js. И что откуда дёргать - не знаю. Настойчиво просить там не у кого. они там все дибилы Добавлено через 8 минут Вот так от меня требуют В js мы меняем высоту DOM-контейнера, где содержится объект swf. Но вам надо менять высоту самого клипа |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
как-то можно внутри swf-ки менять её размер?
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
Но мне это очень нужно.
|
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
import flash.external.ExternalInterface; function resizeInHTML(width, height) { _global.__jsId = Math.random(); if (!_root.__getJsId) { _root.__getJsId = function() { return _global.__jsId; }; ExternalInterface.addCallback("__getJsId",_root, _root.__getJsId); } var callFunction = "function(needId,width,height){"; callFunction += "var elements = document.getElementsByTagName('object');"; callFunction += "for(var k = 0 ; k < elements.length; k ++){"; callFunction += "var element = elements[k];"; callFunction += "if(element.__getJsId != undefined){"; callFunction += "if(needId == element.__getJsId()){"; callFunction += "element.style.width = width;"; callFunction += "element.style.height = height;"; callFunction += "return;"; callFunction += "};"; callFunction += "}"; callFunction += "}"; callFunction += "}"; ExternalInterface.call(callFunction,_global.__jsId,width,height); } // Test: this.onMouseDown = function() { resizeInHTML(100 + Math.floor(Math.random() * 100) + "px",100 + Math.floor(Math.random() * 100) + "px"); }; P.S. Тестировать не локально.
__________________
hauts.ru |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|