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文件将运行并将使用两个回调函数初始化公司对象。

希望这会有所帮助。