首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用鼠标单击来旋转画布中的文本?

问如何使用鼠标单击来旋转画布中的文本?
EN

Stack Overflow用户
提问于 2012-08-30 18:19:43
回答 2查看 1.4K关注 0票数 2

我想知道,一旦我在画布中添加了文本,我如何使用鼠标点击将文本动态旋转到我想要的任何角度?下面是一个示例:

代码语言:javascript
复制
<html>
<head>
 <style>
   body { margin: 0px; padding: 0px; }
   canvas { border: 1px solid #9C9898; }
 </style>
 <script src="http://www.html5canvastutorials.com/libraries/kinetic-v3.10.2.js">         </script>
 <script>
   window.onload = function() {
    var angle = 0;
    var stage = new Kinetic.Stage({
      container: "container",
      width: 578,
      height: 200
    });
    var layer = new Kinetic.Layer();
    var text = new Kinetic.Text({
      x:225,
      y: 80,
      text: "Simple",
      fontSize: 30,
      fontFamily: "Calibri",
      textFill: "black"
    });         
    text.on("click", function(){
        angle+=1
        text.transitionTo({
           rotation:Math.PI*angle/2,
           duration:1 

        });
     });
     layer.add(text);
     stage.add(layer);
  }
 </script>
 </head>
 <body>
<div id="container"></div>
</body>
</html>

这里使用的是鼠标单击,每次我单击鼠标时,它都会以45度旋转,但我希望将文本旋转到任何所需的角度。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-30 19:01:48

参考下面的代码来动态地旋转画布中的文本

代码语言:javascript
复制
<html>

<head>
 <style>
   body { margin: 0px; padding: 0px; }
   canvas { border: 1px solid #9C9898; }
 </style>
 <script src="http://www.html5canvastutorials.com/libraries/kinetic-v3.10.2.js">         </script>
 <script>
   window.onload = function() {
     var angle = 0;
     var stage = new Kinetic.Stage({
       container: "container",
       width: 578,
       height: 200
     });
     var layer = new Kinetic.Layer();
     var text = new Kinetic.Text({
       x:225,
       y: 80,
       text: "Simple",
       fontSize: 30,
       fontFamily: "Calibri",
       textFill: "black"
     });         
     text.on("click", function(){
       angle=getRandomInt(1,4);
       text.transitionTo({
         rotation:Math.PI*angle/2,
         duration:1 

       });
     });
     layer.add(text);
     stage.add(layer);
   }
     function getRandomInt (min, max) {
       return Math.random() * (max - min + 1);
     }

 </script>
 </head>
 <body>
<div id="container"></div>
</body>
</html>
票数 0
EN

Stack Overflow用户

发布于 2012-08-30 18:22:42

This library旋转和缩放HTML画布。也许这对你的工作没什么影响。它被称为zoomooz.js

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12194661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档