createjs.Shape() 不适用于 OOP JavaScript

createjs.Shape() doesn't work with OOP JavaScript

我正在尝试在 JavaScript 中的 Paddle class 中启动形状变量,但它不想渲染它。如果我在 init 函数中定义形状变量,代码就可以正常工作。

代码

var Paddle = function(sizeX, sizeY){
    var posX, posY;
    var sizeX, sizeY;

    this.sizeX = sizeX;
    this.sizeY = sizeY;

    shape = new createjs.Shape();
}

var paddle1 = new Paddle(25, 75);

function init(){

    var stage = new createjs.Stage("canvas");

    //shape = new createjs.Shape();
    paddle1.shape.graphics.beginFill("blue").drawRect( 15, 0, paddle1.sizeX, paddle1.sizeY);

    stage.addChild(paddle1.shape);

    stage.update();

    createjs.Ticker.setFPS(60);
    createjs.Ticker.addEventListener('tick', stage);
    createjs.Ticker.addEventListener('tick', update);
}

function update(){

    stage.update();
}

假设您正在调用 init()(您的代码中未显示),那么您会在控制台中看到一个错误,指出 paddle1.shape 不是一个对象。那是因为你忘了this.

this.shape = new createjs.Shape();

它正在运行:http://jsfiddle.net/gskinner/Lz33kaqb/