用一个加载项绘制图像阵列
draw array of images with one onload?
我想用一个onload函数画一行图像。我试过这个代码
for(i = 0; i < 8; i++){
var canvas = document.getElementById('ctx');
var context = canvas.getContext("2d");
var imageObj = new Image();
imageObj.src = "thumb.png";
imageObj.setAtX = i * 10;
imageObj.setAtY = i * 10;
imageObj.onload = function() {
context.drawImage(this, this.setAtX, this.setAtY);
};
}
(在java脚本中)
// put the paths to your images in imageURLs[]
var imageURLs=[];
imageURLs.push("image1.png");
imageURLs.push("image2.png");
// the loaded images will be placed in imgs[]
var imgs=[];
var imagesOK=0;
loadAllImages(start);
function loadAllImages(callback){
for (var i=0; i<imageURLs.length; i++) {
var img = new Image();
imgs.push(img);
img.onload = function(){
imagesOK++;
if (imagesOK>=imageURLs.length ) {
callback();
}
};
img.onerror=function(){alert("image load failed");}
img.crossOrigin="anonymous";
img.src = imageURLs[i];
}
}
function start(){
// the imgs[] array now holds fully loaded images
// the imgs[] are in the same order as imageURLs[]
}
只需重用图像,当图像加载时,将其绘制成循环-像这样重新组织:
var canvas = document.getElementById('ctx');
var context = canvas.getContext("2d");
var imageObj = new Image();
imageObj.onload = function() {
for(var i = 0; i < 8; i++) context.drawImage(this, i * 10, i * 10);
// .. call next step from here
};
imageObj.src = "thumb.png";
尽量避免在本机对象上设置新属性。在这种情况下,您不需要它,只需在加载图像时进行迭代即可。
var imageObj = [];
for(var i=0;i<images.length;i++){
iy = parseInt(i/6) * 200;
ix = parseInt(i%6) * 200;
imageObj[i] = new Image();
imageObj[i].src = images[i];
// to set additinal parameter
imageObj[i].ix = JSON.parse(JSON.stringify(ix));
imageObj[i].iy = JSON.parse(JSON.stringify(iy));
// console.log(imageObj);
imageObj[i].onload = function() {
console.log(this.ix);
console.log(this.iy);
ctx.drawImage(this, this.ix, this.iy, 200, 200);
};
}
相关文章:
- 列出IE加载项的Javascript
- 在OfficeJS Office加载项中标识活动的Office应用程序
- Office加载项don't与“;asp:”;
- 使用Microsoft Office.js加载项进行自动身份验证
- 在加载之前从内容脚本向加载项发出消息
- Firefox加载项:从选项卡获取文档
- Outlook加载项使用Javascript将附件保存到磁盘
- 使用Firefox加载项修改网站
- 用一个加载项绘制图像阵列
- Firefox加载项验证提供了document.write&innerHTML错误
- Mozilla Firefox加载项将不会启动
- 无法通过Microsoft Office JavaScript加载项对Trello进行身份验证
- Excel 2016 加载项如何更改列格式
- 如何使用 Office 365 加载项(以前称为 Office 相关应用程序)将功能区和用户可定义的函数添加到 Exce
- 从 Javascript 或 C# 中的 Office 365 Outlook 加载项创建.msg文件
- 检测 Office 加载项主机而不包括 office.js
- 如何在 Office 365 加载项中启用允许从沙盒属性顶部导航
- Javascript,如何加载,绘制和循环120帧
- AngularJS中ngRepeat集合中的延迟加载项
- 使用办公加载项清除 Excel 2013 中的工作表