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

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

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

Регистрация: Sep 2013
Сообщений: 3
По умолчанию Автоматическая смена баннеров

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

В общем, мне нужно, чтобы была одна флешка, отвечающая за загрузку и показ нескольких флеш-баннеров. Каждый баннер имеет свою продолжительность и все они по сути не связаны между собой. Мне нужно, чтобы я мог через параметры в HTML коде (или на крайний случай через XML-файл) указать загрузчику ссылки до флеш баннеров, которые будут сменять друг друга (еще желательно и ссылки, по которым пользователь будет переходить при клике по баннеру). После загрузки этих баннеров, рандомно выбирается один и показывается. Когда баннер закончился, он не повторяется, не останавливается, а просто начинает загружаться и отображаться следующий баннер, рандомно выбранный. И еще нужны кнопочки "1, 2, 3" для того, чтобы можно было самому выбрать, какой баннер воспроизвести.

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

Спасибо.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А есть возможность посылать из банеров событие об окончании воспроизведения, или банеры — не Ваши?
Если возможности добавить в банер свой код нет, то можно только на ентерфрейм проверять currentFrame банера и сравнивать с его totalFrames. Но это, естественно, проканает только для банеров, построенных на обычной покадровой мультипликации.
__________________
Reality.getBounds(this);

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

Регистрация: Sep 2013
Сообщений: 3
Цитата:
Сообщение от Wolsh Посмотреть сообщение
А есть возможность посылать из банеров событие об окончании воспроизведения, или банеры — не Ваши?
Если возможности добавить в банер свой код нет, то можно только на ентерфрейм проверять currentFrame банера и сравнивать с его totalFrames. Но это, естественно, проканает только для банеров, построенных на обычной покадровой мультипликации.
Баннеры нам присылают, но в большинстве случаев, вместе с исходником. Но желательно сделать как можно универсальнее, чтобы любую флешку можно было бы скормить загрузчику и нормально происходило определение ее конца и переход к следующей.

Можете по-подробней рассказать, если есть исходник, что можно сделать?
И если нет исходника, помимо "построенных на обычной покадровой мультипликации" какие еще есть и можно ли вычислить такие, чтобы в случае невозможности определить totalFrames, просто его не добавлять в общий список?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Если есть исходник, надо найти в нем момент окончания воспроизведения и продиспатчить там всплывающее событие, лучше какого-нибудь своего типа, допустим,
Код AS3:
dispatchEvent(new Event("playEnd", true));
Для покадровой анимации этот код надо вписать в последнем кадре (или даже добавить еще один кадр для этого кода). Для сложного банера с программной анимацией надо определить "конец" самостоятельно)). В своем лоадере соответственно подписываетесь на это событие. Если банер не будет его посылать, просто ничего не произойдет, так что подписываться можно на все банеры безбоязненно.
Однако, конечно же нужна определенность. Можно в отредактированных банерах завести публичное свойство (public) var isEndDispatcher:Boolean = true; и спрашивать его у загруженных банеров
Код AS3:
if(baner["isEndDispatcher"] == true) // не выполнится если такого свойства нет или оно = false
{
	baner.addEventListener("playEnd", handlerBanerPlayEnded);
} else if (baner is MovieClip && baner.totalFrames > 1) { 
	// подписываемся на ентерфрейм и считаем кадры
}
Можно так же не заводить публичное свойство, а использовать интерфейс-метку. Но это непросто для банеров, поскольку они редко имеют Документ-класс, оформленный как класс в отдельном файле .as
Цитата:
И если нет исходника, помимо "построенных на обычной покадровой мультипликации" какие еще есть
Боюсь, что никаких.
Цитата:
чтобы в случае невозможности определить totalFrames, просто его не добавлять в общий список?
Ну, не добавлять и все)) В чем вопрос то? Если нет публичного свойства, а тоталФреймс == 1 или класс документа не МувиКлип а Спрайт (то есть точно не содержит покадровой анимации), то не добавляете его в плейлист, или как-то помечаете и показываете в течение заранее выбранного времени (ну то есть показываете 3 секунды и баста).
__________________
Reality.getBounds(this);

Старый 02.09.2013, 14:39
xdypx вне форума Посмотреть профиль Отправить личное сообщение для xdypx Найти все сообщения от xdypx
  № 5  
Ответить с цитированием
xdypx

Регистрация: Sep 2013
Сообщений: 3
Спасибо! Посмотрим, что получится сделать.

Добавлено через 12 минут
А, вот такой вопрос еще: как передать загрузчику список флешек и ссылок?

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

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

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


 


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


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