我正在开展一个项目,以帮助我更好地了解 JavaScript 并使用它构建应用程序。我目前正在使用 createjs 制作游戏。我想通过添加一些额外的方法来扩展 Shape “类”,但似乎无法解决这个问题。
通过这种方法,我没有收到任何运行时错误,但是我认为它在某个特定点默默地失败了。
我的子类:
ShipGFX.prototype = new createjs.Shape();
function ShipGFX()
{
createjs.Shape.apply( this );
this.draw = function()
{
var g = this.graphics;
g.clear();
g.setStrokeStyle( 1 );
g.beginStroke( createjs.Graphics.getRGB( 0x00ff00 ) );
g.beginFill( createjs.Graphics.getRGB( 0x00ff00, 0.5 ) );
g.moveTo( 0, 0 );
g.lineTo( -5, -5 );
g.lineTo( 10, 0 );
g.lineTo( -5, 5 );
g.lineTo( 0, 0 );
g.endFill();
}
}
使用地点:
var shape = new ShipGFX();
shape.draw();
所以控制台不会记录任何错误,我什至可以通过 draw 命令记录。我认为问题是 this.graphics 的范围,即使它在那里也没有失败。是范围问题吗?this.graphics 是对原型实例的引用吗(如果我理解正确的话)。理想情况下,我更喜欢使用Class-js,因为我对它的工作原理有了更好的了解,但我什至无法以这种方式工作。
任何输入都会很棒。谢谢你。