HTML5分享:Canvas多点触控规模与KineticJS形状
来源:互联网 发布:淘宝店怎么铺货 编辑:程序博客网 时间:2024/04/27 09:44
注:本实验室只适用于设备,支持多点触控手势如iOS因为它利用多个触摸事件。
产品说明:使用移动设备,支持多点触控手势如iOS,拖拽一个形状通过触摸它,然后把你的手指在屏幕上,激活一个形状,敲敲它,规模一个活跃的形状掐屏幕。
<!DOCTYPE HTML><html> <head> <style> body { margin: 0px; padding: 0px; } </style> </head> <body> <div id="container"></div> <script src="http://www.html5canvastutorials.com/libraries/kinetic-v4.7.3-beta.js"></script> <script defer="defer"> var lastDist = 0; var startScale = 1; var activeShape = null; function getDistance(p1, p2) { return Math.sqrt(Math.pow((p2.x - p1.x), 2) + Math.pow((p2.y - p1.y), 2)); } var stage = new Kinetic.Stage({ container: 'container', width: 578, height: 200, x: 286, y: 100, offset: [289, 100] }); var layer = new Kinetic.Layer(); var triangle = new Kinetic.RegularPolygon({ x: 190, y: stage.getHeight() / 2, sides: 3, radius: 80, fill: 'green', stroke: 'black', strokeWidth: 4, draggable: true, name: 'triangle' }); var circle = new Kinetic.Circle({ x: 380, y: stage.getHeight() / 2, radius: 70, fill: 'red', stroke: 'black', strokeWidth: 4, draggable: true, name: 'circle' }); stage.on('tap', function(evt) { // set active shape var shape = evt.targetNode; activeShape = activeShape && activeShape.getName() === shape.getName() ? null : shape; // sync scene graph triangle.setAttrs({ fill: activeShape && activeShape.getName() === triangle.getName() ? '#78E7FF' : 'green', stroke: activeShape && activeShape.getName() === triangle.getName() ? 'blue' : 'black' }); circle.setAttrs({ fill: activeShape && activeShape.getName() === circle.getName() ? '#78E7FF' : 'red', stroke: activeShape && activeShape.getName() === circle.getName() ? 'blue' : 'black' }); layer.draw(); }); stage.getContent().addEventListener('touchmove', function(evt) { var touch1 = evt.touches[0]; var touch2 = evt.touches[1]; if(touch1 && touch2 && activeShape) { var dist = getDistance({ x: touch1.clientX, y: touch1.clientY }, { x: touch2.clientX, y: touch2.clientY }); if(!lastDist) { lastDist = dist; } var scale = activeShape.getScale().x * dist / lastDist; activeShape.setScale(scale); layer.draw(); lastDist = dist; } }, false); stage.getContent().addEventListener('touchend', function() { lastDist = 0; }, false); layer.add(triangle); layer.add(circle); stage.add(layer); </script> </body></html>
- HTML5分享:Canvas多点触控规模与KineticJS形状
- HTML5点滴:Canvas多点触控与KineticJS规模阶段!
- HTML5很少用到的例子:画布多点触控与KineticJS规模形状!
- HTML5知识:Canvas简单形状与KineticJS的Easings类!
- HTML5 Canvas选择Id与KineticJS形状,html5里面的一个难点!
- HTML5里面的东西:Canvas KineticJS规模动画教程!
- HTML5 Canvas选择形状的名字与KineticJS,我喜欢的一个知识点!
- HTML5网页编程代码:Canvas隐藏和显示与KineticJS形状!
- HTML5画布的形状与kineticjs缓存
- HTML5画布形状与KineticJS分层
- HTML5画布形状与KineticJS事件
- HTML5知识:KineticJS里面的Canvas tango形状!
- HTML5画布10000形状工具提示与KineticJS压力测试
- HTML5 Canvas SVG路径与KineticJS世界地图,够有意思!
- HTML5 Canvas保存阶段与KineticJS JSON字符串
- 与KineticJS HTML5 Canvas停止动画,这个有点意思!
- html5那些事:Canvas所有与KineticJS二层控制!
- HTML5里面的知识:Canvas简单与KineticJS滚动条!
- 衡水宁德遵化新余1383829448265
- UVA 10056 - What is the Probability ?(概率)
- 滕州晋州荆州河源大庆吉安1383829328951
- 汉川遵义丹阳常宁1383829468984
- NoSql比较知名的产品
- HTML5分享:Canvas多点触控规模与KineticJS形状
- 屏的调试
- 德阳贵港登封常宁咸阳通州1383829359335
- 谁在说谎 c,java实现
- 曲靖珠海合肥四平江油江山1383829367457
- 平方根是否为整数
- 将 Flex 集成到 Java EE java+Flex分离配置
- 邓州昆山虎林长春贵港营口1383829372604
- 庄河福州高要瑞金1383829505906