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, jQTouchjQTouch易用性强,相关文档也很全面。它的特色是在 使用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。