as3 判断鼠标在非透明区域点击图片

  1. /**
  2. *鼠标事件
  3. * @param evt
  4. *
  5. */
  6. private function mouseDownHandler(evt:MouseEvent):void
  7. {
  8. if(evt.currentTarget is SceneObject)
  9. {
  10. //判断当前点击区是否在最小图形范围内
  11. var bmd:BitmapData = new BitmapData(evt.currentTarget.width,evt.currentTarget.height,true, 0x00000000);
  12. bmd.draw(evt.currentTarget as SceneObject);
  13. //第一种方法:找到对象的非空白区域,判断鼠标点击点是否在该区域内
  14. ///看帮助 若要确定图像周围的空白区域,请传递 {mask: 0xFFFFFFFF, color: 0xFFFFFFFF} 以查找非空白像素的范围。如果new BitmapData时填充了 0x00000000则传递{mask: 0xFFFFFFFF, color: 0x00000000}
  15. /*var rect:Rectangle = bmd.getColorBoundsRect(0xffffffff,0x00000000,false);
  16. trace(rect);
  17. var minx:Number =  rect.x;
  18. var miny:Number =  rect.y;
  19. var maxx:Number = minx + rect.width;
  20. var maxy:Number = miny + rect.height;
  21. */
  22. //第二种方法 取当前点击点的颜色值 与0x0000000进行判断如果相等则非空白 ,
  23. /*var color:uint = bmd.getPixel32(evt.localX,evt.localY);
  24. trace(color.toString(16),0x00000000); //此处 的color值在点击透明区域输出0xffffffff
  25. */
  26. //第三种方法 利用像素碰撞函数hitTest一步解决 0x00000001 为取比0x00000000都大的区域都为非透明像素
  27. var ptoint = new Point(evt.localX,evt.localY);
  28. if(bmd.hitTest(new Point(0,0),0x00000001,pt))
  29. //if(evt.localX>= minx  && evt.localX <= maxx && evt.localY  >= miny  && evt.localY <= maxy)
  30. //if(color != 0x00000000)
  31. {
  32. trace("按下,在内部");
  33. bmd.dispose();
  34. }
  35. else
  36. {
  37. trace("按下,不在内部");
  38. bmd.dispose();
  39. return;//返回不停止事件流,让鼠标托动背景
  40. }                        }
  41. evt.stopPropagation();
  42. }

原文地址:https://www.cnblogs.com/lingLuoChengMi/p/9264480.html

时间: 2024-08-01 14:28:16

as3 判断鼠标在非透明区域点击图片的相关文章

Unity3D_UGUI判断鼠标或者手指是否点击在UI上

比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分.为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上. 以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法. #if UNITY_ANDROID && !UNITY_EDITOR #define ANDROID #endif #if UNITY_IPHONE && !UNITY_EDITOR #define IPHONE #e

as3 判断鼠标移动方向

import flash.events.MouseEvent; var odx:Number=mouseX; var ody:Number=mouseY; stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown_func) stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp_func); function onMouseDown_func(_evt:MouseEvent):void{

AS3 BitmapData中获取非透明区域对应矩阵

flash.display.BitmapData.getColorBoundsRect(mask:uint, color:uint, findColor:Boolean=true):Rectangle example:getColorBoundsRect(0xFF000000, 0x00000000, false); 确定矩形区域是将位图图像中指定颜色的所有像素完全包括起来(如果将 findColor 参数设置为 true),还是将不包括指定颜色的所有像素完全包括起来(如果将 findColor

判断鼠标点击在div外时,更改背景图片

学习起步时,本人试着在web端界面上仿照qq客户端主菜单,做出了一个界面. 当做到qq主菜单的搜索框时,发现点击搜索框后,里面的背景图片会消失,如下面2张图所示:      点击前                                                                      点击后 尽管类似这种判断鼠标是否点击在div外,以更改背景图片的应用在web开发中并不多见,但是我们还是需要明白,应如何实现对鼠标是否点击在div外的判断. 在这里,我采用了如下代

非微信图文网页,微信浏览器点击图片弹出自带图片浏览 (原创请勿转载)

微信图文网页点击插入的图片,会在微信的图片浏览器上浏览图片可以放大缩小,但是自己做的网页没有这个功能,下面我就来介绍一下这个功能,做出一个完美一点的demo.如果不想看过程直接到最后看demo... 教程需要:脚本编辑器(记事本或者是notepad++.DW都可以).jquery.js.微信浏览器作为测试 如下图效果 我们用到的是微信内置JsAPI的一个,这个函数在微信的开发者平台文档里我没有找到,是在网上搜到的. WeixinJSBridge.invoke('imagePreview',{  

Unity3D 判断鼠标是否按在UGUI上

判断鼠标是否点击在UGUI上 #if UNITY_ANDROID && !UNITY_EDITOR #define ANDROID #endif #if UNITY_IPHONE && !UNITY_EDITOR #define IPHONE #endif using UnityEngine; using UnityEngine.UI; using System.Collections; using UnityEngine.EventSystems; public clas

js判断鼠标是否停止移动

本程序实现当鼠标在一个特定的div内悬停n秒时,判断出已经停止移动. 思路: 1.定义全局变量鼠标移动状态imouse,定时器timer.当鼠标在div内移动时,imouse值为1,相反静止时值为0:timer可以实现每过n秒就判断鼠标状态,然后把imouse重置为0: 2.div监听onmouseover.当鼠标进入区域时,就设置定时器: 3.div监听onmousemove.当鼠标移动时,设置imouse值为1: 4.div监听onmouseout.当鼠标离开时,清除定时器timer <ht

判断鼠标是否在指定区域代码

<div style="width:300px; height:300px; border:1px solid red;"> <div id="target"><div><span>测试</span></div></div> </div> <style type="text/css"> #target{ width: 200px; heig

判断鼠标移入移出元素时的方向

本文要介绍的是一种鼠标从一个元素移入移出时,获取鼠标移动方向的思路.这个方法可以帮助你判断鼠标在移入移出时,是从上下左右的哪个方向发生的.这个思路,是我自己琢磨出来,利用了一点曾经高中学过的数学知识,但是非常简单好理解,希望能对你有所帮助. 在线demo: http://liuyunzhuge.github.io/blog/mouse_direction/demo1.html 相关代码: https://github.com/liuyunzhuge/blog/blob/master/mouse_