26. Использование LocalConnection для синхронизации анимации в баннерах на странице

Начало | Требования к баннерам | 26. Использование LocalConnection для синхронизации анимации в баннерах на странице

Синхронизация анимации в сессионных кампаниях

В некоторых сессионных кампаниях требуется, чтобы при загрузке страницы анимация в двух баннерах стартовала синхронно. Для этого выполните следующие действия:

Подготовка flash-роликов (далее flash-ролик №1 и flash-ролик №2)

    Требования к среде разработки:
  • ActionScript 2.0
  • FlashPlayer 8.0

  1. 1) Подготовка flash-ролика №1:
    • Если во flash-ролике анимация расположена на главном timeline, то скопируйте код и разместите его на первом кадре:

      System.security.allowDomain("*");
      import flash.external.ExternalInterface;
      var adFoxChanel = "ads." + ExternalInterface.call("function(d){return 'adfox'+pr;}");
      clientSender = new LocalConnection();
      var intID = setInterval(function () {
         clientSender.send(_root.adFoxChanel,"methodToExecute","verification");
      }, 10);
      clientSender.onStatus = function(infoObject:Object) {
         if (infoObject.level == "status") {
            clearInterval(intID);
            _root.play();
            clientSender.onStatus = null;
            setTimeout(function(){
              clientSender.send(_root.adFoxChanel,"methodToExecute","start");
            },0);//при необходимости запустить анимацию во втором flash через определённый промежуток времени, ноль исправить на нужное число миллисекунд
         }
      };
      stop();

    • Если во flash-ролике анимация расположена в каком-либо movieclip, то скопируйте следующий код, разместите его на первом кадре

      Необходимо внести изменения в код. А именно: вместо InstanseName_вашего_movieclip подставьте значение InstansName movieclip, в котором расположена анимация.

      System.security.allowDomain("*");
      import flash.external.ExternalInterface;
      var adFoxChanel = "ads." + ExternalInterface.call("function(d){return 'adfox'+pr;}");
      clientSender = new LocalConnection();
      var intID = setInterval(function () {
         clientSender.send(_root.adFoxChanel,"methodToExecute","verification");
      }, 10);
      clientSender.onStatus = function(infoObject:Object) {
         if (infoObject.level == "status") {
            clearInterval(intID);
            _root.InstanseName_вашего_movieclip.play();
            clientSender.onStatus = null;
            setTimeout(function(){
              clientSender.send(_root.adFoxChanel,"methodToExecute","start");
            },0);//при необходимости запустить анимацию во втором flash через определённый промежуток времени, ноль исправить на нужное число миллисекунд
         }
      };
      _root.InstanseName_вашего_movieclip.stop();

      Если код изменен верно, то при запуске flash-ролика анимация стартовать не должна.

    В данном коде был создан новый LocalConnection c каналом, имя которого равно значению переменной adFoxChannel. Через каждые 10 мс в этот канал отправляется параметр «start». Далее происходит проверка статуса отправки параметра в канал LocalConnection: если где-то есть приёмник с именем канала, равным значению переменной adFoxChannel, - обнуляется интервал (10 мс) и запускается анимация во flash. В данном случае запуск анимации во flash является прямым доказательством того, что оба flash’а загружены на страницу.

  2. 2) Подготовка flash-ролика №2:
    • Если необходимо запустить анимацию во flash-ролике №2, причем она находится на главном timeline, то скопируйте код и разместите код на первом кадре:

      System.security.allowDomain("*");
      import flash.external.ExternalInterface;
      var adFoxChanel = "ads." + ExternalInterface.call("function(d){return 'adfox'+pr;}");
      var serverName:LocalConnection = new LocalConnection();
      serverName.methodToExecute = function(param) {
         if (param == "start") {
            _root.play();
         }
      };
      serverName.connect(_root.adFoxChanel);
      stop();

    • Если во flash-ролике анимация расположена в каком-либо movieclip, то скопируйте следующий код, разместите его на первом кадре

      Необходимо внести изменения в код. А именно: вместо InstanseName_вашего_movieclip подставьте значение InstansName movieclip, в котором расположена анимация.

      System.security.allowDomain("*");
      import flash.external.ExternalInterface;
      var adFoxChanel = "ads." + ExternalInterface.call("function(d){return 'adfox'+pr;}");
      var serverName:LocalConnection = new LocalConnection();
      serverName.methodToExecute = function(param) {
         if (param == "start") {
            _root.InstanseName_вашего_movieclip.play();
         }
      };
      serverName.connect(_root.adFoxChanel);
      _root.InstanseName_вашего_movieclip.stop();

      Если код изменен верно, то при запуске flash-ролика анимация стартовать не должна.

Добавление в AdFox

  • Добавьте сессионную (на одной странице) кампанию.

  • Далее добавьте баннеры и загрузите подготовленные по требованиям flash-ролики. Сохраните баннеры.

    При добавлении баннеров используйте Безразмерные типы баннеров, в противном случае, не будет выполнена синхронизация анимации. Подробнее об отличиях между Стандартными и Безразмерными типами можете посмотреть здесь.

  • Откройте параметры первого баннера:

    и для flash-ролика измените banner.adfox.ru в ссылке на swf на один из следующих ip адресов:

    • 81.177.7.20
    • 81.177.7.21
    • 81.177.7.22
    • 81.177.7.23
    • 81.177.7.24
    • 81.177.7.25

    Например, была ссылка :
    http://banners.adfox.ru/110318/adfox/144175/371336_1.swf,

    а после изменения стала:
    http://81.177.7.20/110318/adfox/144175/371336_1.swf

  • Откройте параметры второго баннера и измените в ссылке на swf для flash-ролика banner.adfox.ru на тот же ip адрес, который был указан для первого баннера.

  • NB: ip должен быть одинаковым для обоих flash-роликов, иначе они не установят соединение.

  • Готово, теперь при загрузке станицы анимация во flash-роликах будет стартовать синхронно.

Скачать пример

Последнее обновление: 05.08.2011



См. также: