我这里有一个小问题,我一直在折腾我的头,但不知何故,解决方案逃避了我。有人能告诉我我哪里做错了吗?
在调用函数saveImages()时,我必须将图像从画布保存到ImageArray,这是一个Javascript数组。我已经将ImageArray声明为一个全局变量(即在任何函数之外)
var ImageArray = new Array(); // is this the proper way to do it?接下来,我调用saveImages()函数。
function saveImages() {
//here I draw on the canvas
Image = canvas.toDataURL('image/jpeg');
//window.open(Image, 'new_window'); // I see the window with the Jpeg Image data So I am sure that the image actually comes
ImageArray[0].src = Image; // Looked up the internet to find that dataToURL can be used as img source
no_of_pics_compared= ImageArray.length();
alert('no_of_pics_compared' + no_of_pics_compared) // I do not get this alert
}我没有收到最后一个警告,这意味着代码中存在一些缺陷,导致它停止工作。
我希望能够多次调用这个saveImages()函数,直到达到一个限制(比如5个),并且希望在调用一个单独的函数(比如displayImages() )时显示ImageArray中的所有5个图像。这就是我希望将ImageArray保留为global的原因
有没有人能告诉我,我该怎么纠正哪里出了问题?非常提前感谢:)
发布于 2014-10-16 16:31:16
改用这个。
var array = [];array.push(图片);
发布于 2014-10-16 16:32:28
ImageArray[0]的src属性之前,未对其进行初始化。您可以改写以下代码:ImageArray ={ src:};
length是一个属性,而不是一个函数,所以它应该是:ImageArray.length;
var ImageArray = new Array();//这是正确的方法吗?
是!但您可以编写以下简短版本:
var ImageArray = [];
您可以阅读有关如何在here. JavaSscript中创建阵列的详细信息
最后,在上述更改之后,您的代码:
var ImageArray = [];
function saveImages() {
Image = canvas.toDataURL('image/jpeg');
ImageArray[0] = {
src: Image
};
no_of_pics_compared= ImageArray.length;
alert('no_of_pics_compared' + no_of_pics_compared);
}发布于 2014-10-16 16:32:30
在数组中,首先必须创建要添加到数组中的对象,然后将其直接推送到数组中:
var ImageArray = new Array(); // Yes this is one of the proper ways to do it.
//Second Way:
// var ImageArray = [];
function saveImages() {
var newImage = new Image();
newImage.src = canvas.toDataURL('image/jpeg');
.
.
.
ImageArray.push(newImage);
.
.
.
}另外,length是一个属性,而不是一个函数,所以你必须像这样得到它:
no_of_pics_compared= ImageArray.length;https://stackoverflow.com/questions/26399534
复制相似问题