请教: HTML5 Canvas画布多背景淡入淡出切换效果的实现 本帖最后由 mycggo 于 2013-01-24 17:01:53 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其他不变 添加这个var mysender = { alpha:0 ,maxAlpha:100 ,nowindex:0 ,nextindex:1 ,imgs:imgs ,ctx:ctx ,cvs:cvs ,u:function(){ if(++this.alpha>this.maxAlpha){ this.alpha = 0; if(++this.nowindex>=this.imgs.length){this.nowindex = 0} if(++this.nextindex>=this.imgs.length){this.nextindex = 0} } return this; } ,d:function(){ this.ctx.clearRect(0,0,this.cvs.width,this.cvs.height); var img = null; var alpha_2 = (this.alpha/this.maxAlpha); var alpha_1 = 1 - alpha_2; this.ctx.save(); this.ctx.globalAlpha = alpha_1; img = this.imgs[this.nowindex]; this.ctx.drawImage(img,0,0,img.width,img.height,0,0,this.cvs.width,this.cvs.height); this.ctx.restore(); this.ctx.save(); this.ctx.globalAlpha = alpha_2; img = this.imgs[this.nextindex]; this.ctx.drawImage(img,0,0,img.width,img.height,0,0,this.cvs.width,this.cvs.height); this.ctx.restore(); } } window.onload=function(){ setInterval(function(){ mysender.u().d(); },1e3/mysender.maxAlpha); }; 这个封装成对象了,我好好研究研究,KK3K2005,非常感谢!!看了目前你的代码,有3个问题不是很理解。1: mysender.u().d(); 可以这样调用方法?2: 1e3/mysender.maxAlpha中的1e3代表什么?3: u:function(){ if(++this.alpha>this.maxAlpha){ this.alpha = 0; if(++this.nowindex>=this.imgs.length){this.nowindex = 0} if(++this.nextindex>=this.imgs.length){this.nextindex = 0} } return this;}这个方法里面:if(++this.alpha>this.maxAlpha)这样的判断方式按照正常写法应该怎么写? u() 方法 返回了 this 所以 可以 mysender.u().d()1e3科学计数法 10的3次方 = 1000 if(++this.alpha>this.maxAlpha)===> this.alpha+=1; if(this.alpha>this.maxAlpha)上面都是基础知识 不会在说第2遍了在复杂的东西都是基础知识堆出来的 Highcharts 如何添加基准线 在页面调用客户端应用程序 想学好Javascript的必看! 请教:JavaScript能否在为style添加《值改变》事件 <%=fromstr%>什么作用啊 急,javascript计算子节点的问题? 问一个js js怎样转换编码?谢谢! 一个小问题 CreateObject("WScript.Shell")失败 各路大神,小弟求指点??如何使用js开启IE9的兼容性视图 extjs4中treepanel的问题
alpha:0
,maxAlpha:100
,nowindex:0
,nextindex:1
,imgs:imgs
,ctx:ctx
,cvs:cvs
,u:function(){
if(++this.alpha>this.maxAlpha){
this.alpha = 0;
if(++this.nowindex>=this.imgs.length){this.nowindex = 0}
if(++this.nextindex>=this.imgs.length){this.nextindex = 0} }
return this;
}
,d:function(){
this.ctx.clearRect(0,0,this.cvs.width,this.cvs.height); var img = null; var alpha_2 = (this.alpha/this.maxAlpha);
var alpha_1 = 1 - alpha_2;
this.ctx.save();
this.ctx.globalAlpha = alpha_1;
img = this.imgs[this.nowindex];
this.ctx.drawImage(img,0,0,img.width,img.height,0,0,this.cvs.width,this.cvs.height);
this.ctx.restore(); this.ctx.save();
this.ctx.globalAlpha = alpha_2;
img = this.imgs[this.nextindex];
this.ctx.drawImage(img,0,0,img.width,img.height,0,0,this.cvs.width,this.cvs.height);
this.ctx.restore(); }
}
window.onload=function(){
setInterval(function(){
mysender.u().d();
},1e3/mysender.maxAlpha);
};
1: mysender.u().d(); 可以这样调用方法?
2: 1e3/mysender.maxAlpha中的1e3代表什么?
3: u:function(){
if(++this.alpha>this.maxAlpha){
this.alpha = 0;
if(++this.nowindex>=this.imgs.length){this.nowindex = 0}
if(++this.nextindex>=this.imgs.length){this.nextindex = 0}
}
return this;
}这个方法里面:if(++this.alpha>this.maxAlpha)这样的判断方式按照正常写法应该怎么写?
1e3科学计数法 10的3次方 = 1000
if(++this.alpha>this.maxAlpha)
===>
this.alpha+=1;
if(this.alpha>this.maxAlpha)
上面都是基础知识 不会在说第2遍了
在复杂的东西都是基础知识堆出来的