2014-12-09 41 views
0

好吧,我試圖把JavaScript放在一個單獨的源文件中。這是一個新手問題,但我在layer.add(imageObj)上收到一個'undefined'錯誤。 我猜這是因爲window.onLoad,但我沒有找到一個直接的答案。KineticJS - 基本JavaScript範圍問題

<html> 
<head> 
    <link rel="stylesheet" type="text/css" media="screen" href="index.css"> 
    <script type="text/javascript" src="js/kinetic-v5.1.0.min.js"></script> 
    <script type="text/javascript" src="js/game.js" defer="defer"></script> 
</head> 
<body> 
    <div id="board"></div> 
</body> 

的JavaScript:

window.onload = function(){ 

var stage = new Kinetic.Stage({ 
    container: 'board' 
}); 
var layer = new Kinetic.Layer(); 

var imageObj = new Image(); 
imageObj.onload = function() { 
    var image = new Kinetic.Image({ 
    x: 0, 
    y: 0, 
    image: imageObj, 
    width: 100, 
    height: 100 
    }); 
}; 
imageObj.src = 'resources/map.jpg'; 

layer.add(imageObj); 
stage.add(layer); 
}; 

回答

1

您需要添加到層Kinetic.Image實例(image在源)不imageObj。您可以在onload函數中執行此操作。見:http://jsbin.com/buroyi/2/edit

+0

謝謝,這有幫助!傻我。 – FDM 2014-12-10 10:48:32