KineticJS - 基本的JavaScript范围问题

KineticJS - basic javascript scope issue

本文关键字:JavaScript 范围 问题 KineticJS      更新时间:2023-09-26

好的,我正在尝试将javascript放在单独的源文件中。这是一个新手问题,但我在layer.add(imageObj)上收到"未定义"错误。我猜这是因为window.onLoad,但我没有立即找到答案。

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

您需要添加到层Kinetic.Image实例(image在源中)而不是imageObj。您可以在onload函数中执行此操作。请参阅:http://jsbin.com/buroyi/2/edit