lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6022|回复: 3
打印 上一主题 下一主题

点击图片后,鼠标在红点内可以旋转图片,在红点外无法...

[复制链接]

2

主题

0

好友

22

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2014-8-15 23:35:52 |只看该作者 |倒序浏览
点击图片后,鼠标在红点内可以旋转图片,在红点外无法旋转,求解。。。
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8" />
  5.     <script type="text/javascript" src="http://lufylegend.com/js/lufylegend-1.9.0.min.js"></script>
  6.     <!-- 新 Bootstrap 核心 CSS 文件 -->
  7.     <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css">

  8.     <!-- 可选的Bootstrap主题文件(一般不用引入) -->
  9.     <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">

  10.     <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
  11.     <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>

  12.     <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
  13.     <script src="http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
  14. </head>
  15. <body>
  16.     <div class="row">
  17.         <div class="col-xs-6"><div id="mylegend">loading...</div></div>
  18.         <div class="col-xs-6"><div id="show"></div></div>

  19.     </div>
  20.     <script type="text/javascript">
  21.         var loader;
  22.         var mouseObj;
  23.         var mouseX, mouseY;
  24.         init(50, "mylegend", 500, 500, main);

  25.         function main() {
  26.             stageLayer = new LSprite();
  27.             stageLayer.graphics.drawRect(1, "#000000", [0, 0, LGlobal.width, LGlobal.height], true, "#000000");
  28.             addChild(stageLayer);

  29.             loader = new LLoader();
  30.             loader.addEventListener(LEvent.COMPLETE, function (event) {

  31.                 var temp = new LSprite();
  32.                 temp.x = 100;
  33.                 temp.y = 100;
  34.                 stageLayer.addChild(temp);
  35.                 var bitmapdata1 = new LBitmapData(loader.content);
  36.                 var bitmap1 = new LBitmap(bitmapdata1);
  37.                 temp.addChild(bitmap1);


  38.                 //图片
  39.                 var bitmapdata = new LBitmapData(loader.content);
  40.                 var bitmap = new LBitmap(bitmapdata);
  41.                 bitmap.x = -bitmap.getWidth() * 0.5;
  42.                 bitmap.y = -bitmap.getHeight() * 0.5;

  43.                 //图片层
  44.                 var backLayer = new LSprite();
  45.                 backLayer.x = 100+bitmap.width/2;
  46.                 backLayer.y = 100+bitmap.height/2;
  47.                 //backLayer.rotate = 50;
  48.                 backLayer.addEventListener(LMouseEvent.MOUSE_DOWN, function (event) {
  49.                     //矩形框
  50.                     rect = new LSprite();
  51.                     rect.x = -bitmap.getWidth() * 0.5 - 1;
  52.                     rect.y = -bitmap.getHeight() * 0.5 - 1;
  53.                     rect.graphics.drawRect(1, "#5bc0de", [0, 0, bitmap.width + 2, bitmap.height + 2], false, "#5bc0de");
  54.                     backLayer.addChild(rect);

  55.                     //红色圆点
  56.                     arc = new LSprite();
  57.                     arc.x = -bitmap.getWidth() * 0.5 + 240;
  58.                     arc.y = -bitmap.getHeight() * 0.5 + 0;
  59.                     arc.graphics.drawArc(1, "#ff0000", [0, 0, 10, 0, 2 * Math.PI], true, "#ff0000");
  60.                     arc.addEventListener(LMouseEvent.MOUSE_DOWN, function (event) {
  61.                         mouseX = event.offsetX - backLayer.x + bitmap.width / 2;
  62.                         mouseY = event.offsetY - backLayer.y + bitmap.height / 2;

  63.                         mouseObj = event;
  64.                         mouseObj.mouseX = mouseX;
  65.                         mouseObj.mouseY = mouseY;

  66.                         $('#show').append('<span>x:' + mouseX + '  y:' + mouseY + '</span>
  67. ')
  68.                     });
  69.                     arc.addEventListener(LMouseEvent.MOUSE_UP, function (event) {
  70.                         mouseX = event.offsetX - backLayer.x + bitmap.width / 2;
  71.                         mouseY = event.offsetY - backLayer.y + bitmap.height / 2;

  72.                         $('#show').append('<span>x:' + mouseX + '  y:' + mouseY + '</span>
  73. ')
  74.                     });
  75.                     arc.addEventListener(LMouseEvent.MOUSE_MOVE, function (event) {
  76.                         mouseX = event.offsetX - backLayer.x + bitmap.width / 2;
  77.                         mouseY = event.offsetY - backLayer.y + bitmap.height / 2;

  78.                         if (mouseObj) {
  79.                             var ab = Math.sqrt((Math.pow(mouseX - backLayer.x, 2) + Math.pow(mouseY - backLayer.y, 2)));
  80.                             var c = Math.sqrt((Math.pow(mouseX - mouseObj.mouseX, 2) + Math.pow(mouseY - mouseObj.mouseY, 2)));
  81.                             var i = (Math.pow(ab, 2) * 2 - Math.pow(c, 2)) / (4 * ab);

  82.                             if (i < 0)
  83.                                 i = (-i);
  84.                             i = i * 0.001;


  85.                             var j = Math.acos((Math.pow(ab, 2) * 2 - Math.pow(c, 2)) / (4 * ab))



  86.                             backLayer.rotate += Math.acos(i);

  87.                             $('#show').append('<span>x:' + mouseX + '  y:' + mouseY + '   ab:' + ab + '   c:' + c + '   i:' + i + '   j:' + j + '</span>
  88. ')
  89.                         }

  90.                         
  91.                     });
  92.                     backLayer.addChild(arc);
  93.                 });
  94.                 stageLayer.addChild(backLayer);

  95.                 backLayer.addChild(bitmap);

  96.             });
  97.             loader.load("face.jpg", "bitmapData");
  98.         }
  99.     </script>

  100. </body>
  101. </html>
复制代码
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2014-8-15 23:48:56 |只看该作者
你既然把MOUSE_MOVE事件加到了红点上,那当然只有在红点上移动鼠标的时候才有效了
不回答与技术和引擎不相关的问题
回复

使用道具 举报

2

主题

0

好友

22

积分

士兵

Rank: 1

板凳
发表于 2014-8-16 08:43:19 |只看该作者
能详细讲讲吗?backLayer 已经有事件了,加到backLayer上会重复不是?难道在backLayer跟红点图层之间再加上一个图层?
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

地板
发表于 2014-8-16 11:27:56 |只看该作者
lataing 发表于 2014-8-16 08:43
能详细讲讲吗?backLayer 已经有事件了,加到backLayer上会重复不是?难道在backLayer跟红点图层之间再加上 ...

backLayer上哪里有MOUSE_MOVE事件?
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-1 07:52 , Processed in 0.048982 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部