我正在开展一个项目,以帮助我更好地理解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 ,因为我对它的工作方式有了更好的了解,但我甚至无法通过这种方式工作。
任何输入都会很棒。谢谢。
答案 0 :(得分:0)
之所以失败是因为我没有意识到draw函数在createjs.Shape API中预先存在。将名称更改为“渲染”解决了我的问题。