2015-10-06 30 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

相關問題