Остановите игру 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, чтобы оценить дополнительные команды для выполнения в обратном вызове.