`
ch_kexin
  • 浏览: 898933 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

Flash AS3 让<鼠标点击>穿透上层透明区域,下层对象触发<鼠标点击>事件

 
阅读更多

问题描述:
1. 在Stage上放置2个Sprite, A 和 B, 它们中心区域和边界是不透明的,而边缘区域是透明的

2. A 在 B 的上层, A和B之间有重叠区域,如下图
  ( * 为 A 的中心区域, . 为 B 的中心区域, 空白处为透明区域 , X 为鼠标点击区域 )
   
3. 点击X位置时,如果让B来响应事件

  A-----------A
  | |
  | ****** |
  | ******---+------B
  | ****** | |
  | | ...|... |
  | | .X.|... |  
  | | ...|... |
  A----+------A... |
  | ....... |
  | |
  B-------------B

--------------------------------------------------------
                             解决方案
--------------------------------------------------------
使用InteractivePNG工具

InteractivePNG使PNG图像中的透明像素不再响应鼠标交互。
所涉及到的类文件
com/ibio8/media/images/MCInteractivePNG.as
http://www.mosessupposes.com/utilities/
概述

此类主要功能是将 PNG 图片的透明区域处理为没有鼠标事件的区域。以方便对包含透明位图的 MC 进行鼠标事件、检测碰撞等操作。
使用方法

mybtn1.addEventListener(MouseEvent.MOUSE_OVER, mouseHandler1);
mybtn1.addEventListener(MouseEvent.MOUSE_OUT, mouseHandler1);
function mouseHandler1(evt:Event):void {
if (evt.type=="mouseOver") {
bg1.gotoAndStop(2);
} else {
bg1.gotoAndStop(1);
}
}

mybtn2.addEventListener(MouseEvent.MOUSE_OVER, mouseHandler2);
mybtn2.addEventListener(MouseEvent.MOUSE_OUT, mouseHandler2);
function mouseHandler2(evt:Event):void {
if (evt.type=="mouseOver") {
bg2.gotoAndStop(2);
} else {
bg2.gotoAndStop(1);
}
}
重点剖析
实例:
http://www.mosessupposes.com/utilities/InteractivePNG_demo.html

使用方法:下载demo后 需和 工具类 包放同一目录下方可使用。

分享到:
评论

相关推荐

    Activity点击穿透效果

    在Android开发中,Activity点击穿透效果是指用户在某一层Activity上点击时,其下的Activity或者View也能接收到点击事件并进行响应。这种效果通常应用于悬浮窗、半透明遮罩层等场景,使得用户无需移除顶层视图就能与...

    C#编程经验技巧宝典

    2&lt;br&gt;&lt;br&gt;0003 设置程序代码行序号 3&lt;br&gt;&lt;br&gt;0004 开发环境全屏显示 3&lt;br&gt;&lt;br&gt;0005 设置窗口的自动隐藏功能 3&lt;br&gt;&lt;br&gt;0006 根据需要创建所需解决方案 4&lt;br&gt;&lt;br&gt;0007 如何使用“验证的目标架构”功能 4&lt;br&gt;...

    鼠标穿透到桌面和穿透到父窗口Demo

    本文章地址:... 遮罩层实现鼠标消息穿透(透明区域穿透,非透明区域不穿透) 实现需求1:鼠标穿透 实现需求2:软件分层构架的菜单穿透 作者:红模仿 QQ:21497936 日期:2019年04月08日

    vc窗体透明,鼠标穿透

    在VC++中,实现鼠标穿透通常需要重写WM_NCHITTEST消息处理函数,返回HTTRANSPARENT值,这样系统就会忽略在这个区域的鼠标事件,让它们传递到下一层窗口。 在描述中提到的“简单学习的一步”,暗示了这是一个学习和...

    MouseArea 的 Click / Hover 事件穿透

    这个属性默认为`false`,当设置为`true`时,它会让`MouseArea`将已处理的事件传递给其下的`MouseArea`,这样即使上层`MouseArea`处理了点击事件,下层的`MouseArea`也能接收到相同的事件。 例如,在`main.qml`中,...

    C#鼠标穿透半透明窗体

    在C#编程中,创建一个具有鼠标穿透功能的半透明窗体是一项常见需求,尤其是在开发桌面应用时,可能需要实现类似“浮动面板”或者“工具提示”等效果。本篇文章将详细探讨如何实现这一功能。 首先,让我们了解什么是...

    鼠标点击变色,弹出div,禁用页面

    在网页开发中,我们经常需要实现一些交互效果来提升用户体验,比如鼠标点击元素时变色、弹出div层以及禁用页面的其他交互。这里我们将深入探讨这些功能的实现方式。 1. 鼠标点击变色: 当用户点击某个元素时,我们...

    imageView点击穿透事件示例

    这样,当用户点击图片的透明区域时,事件会传递到`UIImageView`下方的视图,从而触发相应的点击事件。 然而,这种方法可能并不完全准确,因为它是基于整个图片的透明度来判断的。如果图片只有局部透明,那么即使...

    真正点对点通讯示范程序

    本程序为一个真正点对点通讯示范...负责消息中转、用户登陆&lt;br/&gt;客户端从服务端获取用户列表 然后直连各个用户 以实现 聊天 语音 视屏 文件传输等可能的一切服务&lt;br/&gt;&lt;br/&gt;使用2个第3方控件&lt;br/&gt;DXSock&lt;br/&gt;Rzaize 3.10

    易语言窗口透明+鼠标穿透源码

    其次,鼠标穿透技术,也称为鼠标忽略或鼠标隔离,是指当鼠标移动到某个窗口时,其点击和移动事件不会被该窗口捕获,而是传递到窗口下方的对象。在易语言中,实现鼠标穿透通常需要监听鼠标的移动和点击事件,然后通过...

    sipLite 软电话

    sipLite是支持 SIP 协议的软电话,操作简便,非常适合于终端用户使用.&lt;br&gt;&lt;br&gt;性能特点:&lt;br&gt;&lt;br&gt;&lt;br&gt;安装包仅有1.4Mb,不需要额外的库文件. &lt;br&gt;&lt;br&gt;&lt;br&gt;支持G729编解码.音质清晰. &lt;br&gt;&lt;br&gt;&lt;br&gt;可自定义SIP通讯端口,以...

    实现cocoscreator对图片透明区域穿透的处理

    1、cocoscreator实现图片透明区域的穿透,解决了多图片重叠时的问题。 2、预览请移步:https://pan.baidu.com/s/11v096Bbi3PmqbAEL7Uonew#list/path=/我的分享/CSDN/TouchProj 3、版本creator2.0.8,如有疑问请...

    易语言全API实现鼠标穿透窗体

    在编程领域,有时候我们需要创建特殊的窗口,这些窗口可以允许鼠标事件穿透,也就是说,即使鼠标在该窗口上,也能触发下方窗口的鼠标事件。这在某些高级界面设计或游戏开发中非常常见。本话题将深入探讨如何使用...

    对vue中的事件穿透与禁止穿透实例详解

    有时候,我们可能会遇到事件穿透的问题,即在页面上层的元素被点击时,同时也触发了下层元素的事件。这主要是因为浏览器默认的行为,事件会从捕获阶段开始,一直传递到冒泡阶段。Vue.js 提供了优雅的方式来解决这个...

    QStackLaout实现窗口重叠,附带事件穿透、位置拖动、设置Qt::FramelessWindowHint大小下的拖拽功能

    当一个窗口部件被设置为透明或者半透明时,事件穿透允许底层的窗口部件接收并处理鼠标和键盘事件,即使它们被上面的窗口部件遮挡。这在实现交互式重叠窗口时非常有用。 接着,我们讨论窗口的位置拖动。在Qt中,你...

    C# 鼠标穿透Winform窗体

    有时,开发者可能需要实现一个特殊功能,即让鼠标能够穿透窗体,即鼠标可以穿过窗体并与其下方的对象交互,而不会被窗体拦截。这个特性在创建如透明控件或者虚拟桌面等高级应用时非常有用。本文将详细解释如何实现C#...

    飘浮文字跟随鼠标

    “鼠标事件类”和“鼠标特效”则暗示了这个主题可能扩展到更多与鼠标交互相关的高级技巧,如鼠标的拖放功能、滚轮事件、右键点击事件等,这些都是JavaScript在Web开发中实现用户交互的重要组成部分。 总的来说,...

    解决IE6 中select 穿透 div 等层的问题

    这些方法都是为了在`&lt;select&gt;`元素之上创建一个覆盖层,从而避免下拉菜单穿透到其他元素。 1. bgiframe插件:这是jQuery的一个插件,它会在元素周围插入一个透明的IFrame,以模拟背景图片的行为。这个IFrame可以...

    jquery简单的二级下拉菜单

    &lt;li&gt;&lt;a href="#"&gt;子菜单1.1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="#"&gt;子菜单1.2&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;a href="#"&gt;菜单2&lt;/a&gt; &lt;ul class="sub-menu"&gt; &lt;li&gt;&lt;a href="#"&gt;子菜单2.1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="#"&gt;子菜单2.2&lt;/...

    C#鼠标穿透功能工程

    这个"C#鼠标穿透功能工程"显然与实现C#环境下让鼠标点击穿过某个控件或窗口,使得底层的元素可以被点击有关。下面将详细解释这一技术及其实现方式。 首先,"鼠标穿透"(Mouse Passthrough)是指允许鼠标点击透过一...

Global site tag (gtag.js) - Google Analytics