canvas 并在 easel.js 阶段失去全局范围
canvas and stage losing global scope in easel.js
这是代码。在顶部,您可以看到 canvas 和 stage 被声明为全局变量。然后 initializeCanvas() 函数在页面加载时运行并分配这些变量并加载背景图像。
奇怪的是,stage 和 canvas 最终未定义。
为什么?我该怎么办?
罗杰
var canvas, stage
function initializeCanvas() {
canvas = document.getElementById("starCanvas")
canvas.width = window.innerWidth
canvas.height = 720
stage = new createjs.Stage("starCanvas")
background = new createjs.Bitmap("background1.jpg");
background.image.onload = handleBackgroundImage_Loaded
}
function handleBackgroundImage_Loaded(evt) {
background.x = 0
background.y = 0
stage.addChildAt(background,0);
stage.update()
}
alert(canvas)
alert(stage)
我猜你忘记调用函数了。
某处粘贴:
initializeCanvas();
make initializeCanvas
,一个立即调用的函数。另外,始终使用 console.log
输出对象以供检查。
var canvas, stage;
(function initializeCanvas() {
canvas = document.getElementById("starCanvas");
canvas.width = window.innerWidth;
canvas.height = 720;
stage = new createjs.Stage("starCanvas");
background = new createjs.Bitmap("background1.jpg");
background.image.onload = handleBackgroundImage_Loaded;
})();
function handleBackgroundImage_Loaded(evt) {
background.x = 0;
background.y = 0;
stage.addChildAt(background, 0);
stage.update();
}
console.log(canvas);
console.log(stage);
<script src="https://code.createjs.com/createjs-2015.11.26.min.js"></script>
<canvas id="starCanvas"></canvas>
这是代码。在顶部,您可以看到 canvas 和 stage 被声明为全局变量。然后 initializeCanvas() 函数在页面加载时运行并分配这些变量并加载背景图像。
奇怪的是,stage 和 canvas 最终未定义。
为什么?我该怎么办?
罗杰
var canvas, stage
function initializeCanvas() {
canvas = document.getElementById("starCanvas")
canvas.width = window.innerWidth
canvas.height = 720
stage = new createjs.Stage("starCanvas")
background = new createjs.Bitmap("background1.jpg");
background.image.onload = handleBackgroundImage_Loaded
}
function handleBackgroundImage_Loaded(evt) {
background.x = 0
background.y = 0
stage.addChildAt(background,0);
stage.update()
}
alert(canvas)
alert(stage)
我猜你忘记调用函数了。 某处粘贴:
initializeCanvas();
make initializeCanvas
,一个立即调用的函数。另外,始终使用 console.log
输出对象以供检查。
var canvas, stage;
(function initializeCanvas() {
canvas = document.getElementById("starCanvas");
canvas.width = window.innerWidth;
canvas.height = 720;
stage = new createjs.Stage("starCanvas");
background = new createjs.Bitmap("background1.jpg");
background.image.onload = handleBackgroundImage_Loaded;
})();
function handleBackgroundImage_Loaded(evt) {
background.x = 0;
background.y = 0;
stage.addChildAt(background, 0);
stage.update();
}
console.log(canvas);
console.log(stage);
<script src="https://code.createjs.com/createjs-2015.11.26.min.js"></script>
<canvas id="starCanvas"></canvas>