0

Создание контейнера для игры HTML5 в GWD, которая воспроизводится в расширенном баннерном объявлении, и не может понять, как остановить скрипт игры при нажатии кнопки выхода , Например, звуки продолжают воспроизводиться в фоновом режиме, даже если баннер находится в нерасширенном/закрытом состоянии.Остановить игру JS на выходе в DoubleClick Expanding Rich Media Banner Ad

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

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

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

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

+0

Спасибо Snick за ответ, Я попробовал, что с помощью этого кода: gwd.handleClose_buttonAction = функция() { gwd.actions.gwdDoubleclick.goToPage ('БДГФ-объявление', 'баннер-страницы') ; createjs.Sound.pause(); }; И это не работает. Что я делаю не так? – mchlh

+0

Звуковые файлы вызываются в loadManifest, нужно ли обращаться к ним по-другому? – mchlh