如何在单击时从 canvas 中删除位图图像
How to remove bitmap image on click from canvas
我正在使用 createjs 作为我的框架。我在 canvas 上放置了一个位图,并创建了一个函数来尝试删除它,但我一直在控制台中收到一条错误消息,指出图像未定义。这是我的代码的样子:
// onload=init() called in html doc
function init(){
var canvas = new createjs.Stage("canvas");
// Add image to canvas
image = new createjs.Bitmap("image.png");
image.x = 200;
image.y = 180;
image.scaleX = 0.35;
image.scaleY = 0.35;
canvas.addChild(image);
image.addEventListener('click', pop);
canvas.update();
}
//remove image from canvas
function pop() {
console.log('pop');
canvas.removeChild(image);
}
当我点击它时,我收到控制台消息 "pop",然后是我上面提到的错误。我试过将函数移到 init 中,但我似乎遇到了同样的问题。
这是范围问题。您在 init
函数中定义了 image
,因此无法通过 pop
方法访问它。
有两个简单的修复方法。将 var image
移到 init 函数之外,或者改用点击目标。
var image;
function init() {
init = new createjs.Bitmap();
// etc
}
// OR
function pop(event) {
stage.removeChild(event.target);
}
在构建 JavaScript 应用程序时了解范围非常重要,因此我建议更好地了解它:)
干杯,
将图像作为全局变量,以便它可以被您的案例函数中的所有函数访问pop
。
var image;// defining 'image' variable as global
function init(){
var canvas = new createjs.Stage("canvas");
// Add image to canvas
image = new createjs.Bitmap("image.png");
image.x = 200;
image.y = 180;
image.scaleX = 0.35;
image.scaleY = 0.35;
canvas.addChild(image);
image.addEventListener('click', pop);
canvas.update();
}
//remove image from canvas
function pop() {
console.log('pop');
canvas.removeChild(image);
}
我正在使用 createjs 作为我的框架。我在 canvas 上放置了一个位图,并创建了一个函数来尝试删除它,但我一直在控制台中收到一条错误消息,指出图像未定义。这是我的代码的样子:
// onload=init() called in html doc
function init(){
var canvas = new createjs.Stage("canvas");
// Add image to canvas
image = new createjs.Bitmap("image.png");
image.x = 200;
image.y = 180;
image.scaleX = 0.35;
image.scaleY = 0.35;
canvas.addChild(image);
image.addEventListener('click', pop);
canvas.update();
}
//remove image from canvas
function pop() {
console.log('pop');
canvas.removeChild(image);
}
当我点击它时,我收到控制台消息 "pop",然后是我上面提到的错误。我试过将函数移到 init 中,但我似乎遇到了同样的问题。
这是范围问题。您在 init
函数中定义了 image
,因此无法通过 pop
方法访问它。
有两个简单的修复方法。将 var image
移到 init 函数之外,或者改用点击目标。
var image;
function init() {
init = new createjs.Bitmap();
// etc
}
// OR
function pop(event) {
stage.removeChild(event.target);
}
在构建 JavaScript 应用程序时了解范围非常重要,因此我建议更好地了解它:)
干杯,
将图像作为全局变量,以便它可以被您的案例函数中的所有函数访问pop
。
var image;// defining 'image' variable as global
function init(){
var canvas = new createjs.Stage("canvas");
// Add image to canvas
image = new createjs.Bitmap("image.png");
image.x = 200;
image.y = 180;
image.scaleX = 0.35;
image.scaleY = 0.35;
canvas.addChild(image);
image.addEventListener('click', pop);
canvas.update();
}
//remove image from canvas
function pop() {
console.log('pop');
canvas.removeChild(image);
}