javascript - 如何在我的 typescript 生成的 js 中调用函数

标签 javascript html typescript phaser-framework

所以我想在按下 html 定义的按钮时调用一个函数。问题是我无法访问/找到它,控制台记录错误“引用错误:函数未定义”。

我的 output.js(组合和编译的 typescript )的精简布局如下所示:

window.onload = function () {
    var game = new SpaceGen.Game();
};
var __extends = this.__extends || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
};
var SpaceGen;

(function (SpaceGen) {
    var Game = (function (_super) {
        __extends(Game, _super);
        function Game() {
            _super.call(this, 512, 640, Phaser.AUTO, 'content');

            this.state.add('state_World', SpaceGen.World, false);

            this.state.start('state_World');
        }
        return Game;
    })(Phaser.Game);
    SpaceGen.Game = Game;
})(SpaceGen || (SpaceGen = {}));

var SpaceGen;
(function (SpaceGen) {
    var World = (function (_super) {
        __extends(World, _super);
        function World() {
            _super.apply(this, arguments);
            ...
        }    

        World.prototype.getSeed = function () {
            console.log("submitted");
            var seed = document.getElementById('seed')[0].value;
        };        
        return World;
    })(Phaser.State);
    SpaceGen.World = World;
})(SpaceGen || (SpaceGen = {}));

我像这样调用 html 文件中的函数:

<input id="seed" type="number" name="seed" value="111" />
<button onclick="getSeed()">Start</button>

output.js(和 phaser.js,因为这是使用移相器)已经加载,一切(其他)工作正常。

如何调用该函数?我尝试了很多,比如 this.game.getSeed()、game.getSeed() 等等,如果这是一个有效的说法,我只是在黑暗中钓鱼。

最佳答案

getSeedSpaceGen.World 的一个方法。您已在 onload 处理程序中将其实例化为 private 变量,因此无法从属性处理程序访问它。

最简单的解决方案是创建一个全局的。但最好的方法是使用脚本而不是通过 HTML 属性注册处理程序

<button id="my-button">Start</button>

window.onload = function () {
    var world = new SpaceGen.World();
    var button = document.getElementById('my-button');
    button.addEventListener('click', function(){
        alert(world.getSeed());
    })        
};

关于javascript - 如何在我的 typescript 生成的 js 中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23640278/

相关文章:

JavaScript 代码解释。图像序列

reactjs - TypeScript、react-router 和 jsx : JSX element type 'Route' does not have any construct or call signatures

javascript - jquery 移动设备方向更改不调整文本区域的大小

javascript - 使用 promise 等待触发的事件

javascript - 使用 jquery 更改纯 HTML Slider-Thumb 颜色(包括工作 css)

html - 如何在桌面等移动设备上设置页脚视差效果?

node.js - 在注册表中找不到 "dt~mocha"("npm")

angular - 添加StoreModule.forFeature(...)后无法访问存储的数据

javascript - document.getElementById 对于已知元素返回 null - 为什么?

javascript - 将新数据添加到 Backbone.js 中的集合