Javascript 游戏制作者JS扩展

Javascript 游戏制作者JS扩展,javascript,game-maker,game-maker-language,game-maker-studio-1.4,Javascript,Game Maker,Game Maker Language,Game Maker Studio 1.4,您好,我希望向game maker添加javascript函数,但它们的格式如下: companyname.initialize({ soundMuteCallback: muteSound, // optional soundUnmuteCallback: unmuteSound // optional }); 在文件中它们看起来像这样 this.initialize = function(params) { companyname

您好,我希望向game maker添加javascript函数,但它们的格式如下:

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();
};
有人知道如何在game maker中实现这一点吗?我不知道要在扩展函数属性中输入什么信息

谢谢,
米切尔

我建议您创建一个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的函数,其中包含两个可选参数

然后当你调用createCompany1时,1;在Game Maker代码中,.js文件将运行并使用两个回调函数初始化company对象

希望这有帮助