Остановите игру JS на выходе в DoubleClick, расширяя мультимедийную баннерную рекламу

Создание контейнера для игры HTML5 в GWD, в которую играют в расширенном рекламном баннере, и не может понять, как остановить сценарий игры при нажатии кнопки выхода. Например, звуки продолжают воспроизводиться в фоновом режиме, даже если баннер находится в нераскрытом / закрытом состоянии.

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

Заранее спасибо.

Вот соответствующий код:

<script>

function init() {
  canvas = document.getElementById("canvas");
  images = images || {};

  var loader = new createjs.LoadQueue(false);
  createjs.Sound.alternateExtensions = ["mp3"];
  loader.installPlugin(createjs.Sound);
  loader.addEventListener("fileload", handleFileLoad);
  loader.addEventListener("complete", handleComplete);
  loader.loadManifest(lib.properties.manifest);
}

function handleFileLoad(evt) {
  if (evt.item.type == "image") {
    images[evt.item.id] = evt.result;
  }
}

function handleComplete() {
  exportRoot = new lib.PPD_CDW_HyperWiper();

  stage = new createjs.Stage(canvas);
  stage.addChild(exportRoot);
  stage.update();

  createjs.Ticker.setFPS(lib.properties.fps);
  createjs.Ticker.addEventListener("tick", stage);
} 

</script>

<script type="text/javascript" id="gwd-init-code">
(function() {      
  document.body.style.opacity = "0";
  var gwdAd = document.getElementById('gwd-ad');
  /**
   * Handles the DOMContentLoaded event. The DOMContentLoaded event is
   * fired when the document has been completely loaded and parsed.
   */

  function handleDomContentLoaded(event) {
    // This is a good place to show a loading or branding image while
    // the ad loads.
    document.getElementById('loading').style.display = 'block';
  }

  /**
   * Handles the WebComponentsReady event. This event is fired when all
   * custom elements have been registered and upgraded.
   */
  function handleWebComponentsReady(event) {
    document.body.style.opacity = "";


    // Start the Ad lifecycle.
    setTimeout(function() {
      gwdAd.initAd();
    }, 0);
  }

  /**
   * Handles the event that is dispatched after the Ad has been
   * initialized and before the default page of the Ad is shown.
   */
  function handleAdInitialized(event) {
    // This marks the end of the polite load phase of the Ad. If a
    // loading image was shown to the user, this is a good place to
    // remove it.
     document.getElementById('loading').style.display = 'none';
  }

  window.addEventListener('DOMContentLoaded',
    handleDomContentLoaded, false);
  window.addEventListener('WebComponentsReady',
    handleWebComponentsReady, false);
  window.addEventListener('adinitialized',
    handleAdInitialized, false);
  })();
 </script>

И вот где я думаю, что код, который мне нужен, пойдет:

gwd.handleClose_buttonAction = function() {
  // GWD Predefined Function
  gwd.actions.gwdDoubleclick.goToPage('gwd-ad', 'banner-page');

};

1 ответ

Лучший способ справиться с этим - через пользовательское событие.

Из панели событий добавьте новое событие. Я думаю, что подключен к той же области крана, где вы подключили функцию выхода. В качестве действия выберите пользовательский код. В функции обратного вызова вы можете написать собственный код, который будет выполняться, когда пользователь нажимает кнопку выхода.

Например, вы можете написать что-то вроде createjs.Sound.pause(), чтобы приостановить звуки. Пожалуйста, проверьте API createjs, чтобы оценить дополнительные команды для выполнения в обратном вызове.

Другие вопросы по тегам