2015-10-06 29 views
0

我试图在JavaScript中的Paddle类中启动形状var,但它不想呈现它。如果我在init函数中定义shape var,代码就可以正常工作。createjs.Shape()不适用于OOP JavaScript

代码

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(); 
} 

回答

1

假设你在呼唤init()(这是不是在你的代码所示),然后你会看到在您的控制台的错误paddle1.shape不是一个对象。那是因为你忘了this

this.shape = new createjs.Shape(); 

这是工作:http://jsfiddle.net/gskinner/Lz33kaqb/

+0

太感谢你了,我是从C#来了,在作出对象的变种 –

+0

疑难杂症则不需要此标记。在JS中,使用一个明确的范围总是一个好主意,否则你会(通常)在窗口范围内结束。 – gskinner

相关问题