我知道这里没有直接的答案,但我已经与几个似乎认为有可能的人进行了交谈。这是我的代码:

var Tile = function(xPos, yPos, state) {
    this.createTile(xPos, yPos, state);
}

Tile.prototype = new createjs.Shape();

Tile.prototype.createTile = function(xPos, yPos, state) {
    // debugger;
    this.x = xPos;
    this.y = yPos;
    this.onState = state;

    var fillCommand = this.graphics.beginFill("#969696").command;
    var shapeCommand = this.graphics.drawRoundRect(0, 0, 50, 50, 10).command;

    this.on("click", function(){this.toggleState(fillCommand);});

    stage.addChild(this);
    stage.update();
}

Tile.prototype.toggleState = function(fillCommand) {
    if (this.onState === true) {
        fillCommand.style = "#969696";
        stage.update();
        this.onState = false;
        } else if (this.onState === false) {
        fillCommand.style = "#000000";
        stage.update();
        this.onState = true;
    }
}


如果有人熟悉Shape(),则可以在easyljs中实现。基本上,我在这里创建一个Tile类来表示小的圆形正方形,这些正方形在被按下时会改变颜色。语法方面,我没有任何错误,网页上没有任何显示。我已经有了正确的代码来调用Tile,并且画布已经设置好,或者我也将该代码放在了这里。我要问的是,在此实现中我是否有正确的主意?

最佳答案

这有点不合常规,但是如果它对您有用,那么您将获得更多功能。从Shape继承的更常见方法是做类似

Tile.prototype = Object.create(createjs.Shape.prototype);
Tile.prototype.constructor = Tile;


Java脚本中的继承有些奇怪,因此,除非您有时间和精力去做一个深陷的兔子洞,否则我建议您坚持使用正在起作用的东西。如果您想阅读更多,这是一篇很好的入门文章:http://ejohn.org/blog/simple-javascript-inheritance/

关于javascript - 是否可以扩展已经从另一个类继承的类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26921416/

10-12 05:12