0

我正在开展一个项目,以帮助我更好地了解 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,因为我对它的工作原理有了更好的了解,但我什至无法以这种方式工作。

任何输入都会很棒。谢谢你。

4

1 回答 1

0

这无声无息地失败的原因是我几乎没有意识到 draw 函数已经存在于 createjs.Shape API 中。将名称更改为“渲染”解决了我的问题。

于 2013-08-24T03:23:05.430 回答