2014-12-09 2 views
0

Хорошо, я пытаюсь поместить javascript в отдельный исходный файл. Это вопрос новичков, но я получаю сообщение об ошибке «undefined» на layer.add(imageObj). Я предполагаю, что это из-за window.onLoad, но я не нашел немедленного ответа.KineticJS - основная проблема с javascript scope

<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

Смежные вопросы