0

嗨我期待添加JavaScript功能遊戲製造商,但它們的格式是這樣的:遊戲製造商JS擴展

companyname.initialize({ 
    soundMuteCallback: muteSound,   // optional 
    soundUnmuteCallback: unmuteSound  // optional 
}); 

和文件中,就像這樣

this.initialize = function(params) { 
    companyname.getSharedEventCenter().postEvent(SharedEventKeys.API_INITIALIZE); 

    _isInitialized = true; 

    if (typeof params !== "undefined") { 
     var muteSoundCallback = ("soundMuteCallback" in params && typeof params["soundMuteCallback"] === "function") ? params["soundMuteCallback"] : undefined; 
     var unmuteSoundCallback = ("soundUnmuteCallback" in params && typeof params["soundUnmuteCallback"] === "function") ? params["soundUnmuteCallback"] : undefined; 
     _adsManager.setSoundCallbacks(function() { 
      typeof muteSoundCallback === "function" && muteSoundCallback(); 
      [].forEach.call(document.getElementsByTagName("audio"), function(element){ 
       element.muted = true; 
      }); 
     }, function() { 
      typeof unmuteSoundCallback === "function" && unmuteSoundCallback(); 
      [].forEach.call(document.getElementsByTagName("audio"), function(element){ 
       element.muted = false; 
      }); 
     }); 
    } 

    _tryShowAd(); 
}; 

有沒有人有任何想法如何在遊戲製造商做到這一點?我不知道要在擴展功能屬性中放置什麼信息。

謝謝, Mitchell。

回答

0

我會建議創建一個新的功能,Game Maker可以理解,然後用它來創建你的對象和你在這裏顯示的構造函數。

company.initialize = function(params) { 
    companyname.getSharedEventCenter().postEvent(SharedEventKeys.API_INITIALIZE); 

    _isInitialized = true; 

    if (typeof params !== "undefined") { 
     var muteSoundCallback = ("soundMuteCallback" in params && typeof params["soundMuteCallback"] === "function") ? params["soundMuteCallback"] : undefined; 
     var unmuteSoundCallback = ("soundUnmuteCallback" in params && typeof params["soundUnmuteCallback"] === "function") ? params["soundUnmuteCallback"] : undefined; 
     _adsManager.setSoundCallbacks(function() { 
      typeof muteSoundCallback === "function" && muteSoundCallback(); 
      [].forEach.call(document.getElementsByTagName("audio"), function(element){ 
       element.muted = true; 
      }); 
     }, function() { 
      typeof unmuteSoundCallback === "function" && unmuteSoundCallback(); 
      [].forEach.call(document.getElementsByTagName("audio"), function(element){ 
       element.muted = false; 
      }); 
     }); 
    } 

    _tryShowAd(); 
}; 

function createMuteCallback() { 
    muteCallback = function() { 
     // Code to handle the callback 
    } 
    return muteCallback; 
} 

function createUnmuteCallback() { 
    unmuteCallback = function() { 
     // Code to handle the callback 
    } 
    return unmuteCallback; 
} 

function createCompany (mute, unmute) { 
    if (mute == 1) { 
     soundMuteCallback.createMuteCallback(); 
    } 

    if (unmute == 1) { 
     soundUnmuteCallback.createUnmuteCallback(); 
    } 

    company.initialize(soundMuteCallback, soundUnmuteCallback); 
} 

所以所有這些都在同一個.js文件中。在Game Maker中創建一個新的擴展。將.js文件添加到該擴展。使用兩個可選參數添加名爲createCompany的函數。

然後當你調用createCompany(1,1);在您的Game Maker代碼中,.js文件將運行並將使用兩個回調函數初始化公司對象。

希望這會有所幫助。