html5 javascript实现canvas里边多图层显示怎么弄

JavaScript017

html5 javascript实现canvas里边多图层显示怎么弄,第1张

html5中的canvas本身的API是不存在图层概念的。要想实现实现多图层功能,必须要使用多个canvas对象,不过这些canvas对象,是在内存中的,而不是在html的元素树中。每个canvas维持一个图层就可以,然后主canvas是负责显示最后的合成的效果。

js动态创建canvas对象如下:

var layer1=document.createElement('canvas')

layer1.width=800

layer1.height=600

var layer1_canvas=layer1.getContext('2d')

var layer2=document.createElement('canvas')

layer2.width=800

layer2.height=600

var layer2_canvas=layer1.getContext('2d')

layer1_canvas.drawSomething()

layer2_canvas.drawSomething()

canvas.save()//用来显示的canvas

canvas.globalCompositeOperation="destination-over"//设置多个图层如何混合,这个可以百度canvas混合模式,这个和PS是相近的

canvas.drawImage(layer1,0,0,800,600,0,0,800,600)

canvas.drawImage(layer2,0,0,800,600,0,0,800,600)

canvas.restore()

这样就把两个图层绘制在一个图层中,单独改变任一个图层都不会改变其他图层。不明白可追问。

function dog(color, name){

this.color=color

this.name=name

}

//新建一个对象:

var p=new dog("red", "狗狗")

再将对象转化为字符串:

var objStr=JSON.stringify(p)

然后,将objStr存入localStorage中

var s=window.localStorage

s.setItem("dog", objStr)

1, jQTouch

jQTouch易用性强,相关文档也很全面。它的特色是在 使用HTML,CSS和JavaScript创建iPhone App方面拥有出色的能力。jQTouch使用渐进增强的方案,在您相应的HTML顶层来实现像iPhone那样的用户体验。它简单易用,提供了一个基础的小工具集以及动画方案,开发人员只需要编程控制其动态行为即可。

不过有简单测试中发现app的性能存在一定的问题,页面在转换时可能出现跳转或者缺失的情况,以及在响应tap事件的时候还有周期性延迟。该项目在技术上还活跃着,不过原作者的进展和部署都显得太慢了。

只需要遵守MIT的license许可就可以使用jQTouch了

2, jQueryMobile

jQuery Mobile是这个领域的新丁,2010年8月才正式宣布成立,但是已经迅速进展到功能丰富的Alpha 2测试版本了。jQuery Mobile跟jQTouch相比很相似,但是更加标准,更有适应性,感觉很像jQTouch的后继版本,对用户接口和style的支持范围更加宽广了。

jQuery Mobile的性能是不稳定的,(虽然比jQTouch好一些)特别是在响应TAP事件的动画延迟补偿的时候。此外,还缺少一些关键的程序hook,所以不能轻松地让app更加具有动态性能。例如:当一个页面启动的时候事件触发了,这时候却无法通知响应的代码页面将转向哪个用户接口,也不能传递附加的信息给处理模块。针对上述问题,创建工作区来解决还是可行的,但是在这里作者希望其将来的版本能从jQTouch那里学习一下,并把现在的功能缺陷处理掉。

jQuery Mobile的相关文档资料很零散但是有所改进,,(请注意,jQuery Mobile是和jQuery UI相辅相成的,并不是建在单纯jQuery之上的)

想获得jQuery Mobile只需获得MIT或者GPL2 license。

3, Sencha Touch

这是个与Ext JS框架完全不同的产物,其方案与jQTouch/jQuery完全不同:Sencha生成自己的DOM(基于用JavaScript创建的对象)代替了先前存在的HTML增强方式。如此,使用Sencha工作的感觉不像是web编程,而更像是使用Java或者Flex等技术来做app的样子。比起jQuery来,Sencha的感觉更像是YUI。