flash 原生UI 与 starling 鼠标事件冲突解决办法
来源:互联网 发布:阿里云免费云主机 编辑:程序博客网 时间:2024/05/18 01:07
package com.util.core.commands{import com.game.ui.main.WindowState;import flash.display.Stage;import flash.events.MouseEvent;/** * 作用于判断是否点击到原生的FLASH UI 界面 如果是的话就不向starling 发送 点击事件 如果不是的话则继续发送事件 * @author Administrator * */public class StarlingEventShield{public function StarlingEventShield(){}static public var mouseDown:Boolean = false; static public var mouseDrag:Boolean = false; static private var stage:Stage;static public function activate( stage:Stage ) : void{if ( StarlingEventShield.stage ) return; StarlingEventShield.stage = stage;stage.addEventListener( MouseEvent.MOUSE_DOWN, onStage_MouseDown, false, 1, true );stage.addEventListener( MouseEvent.MOUSE_UP, onStage_MouseUp, false, 1, true );}static private function onStage_MouseDown(e:MouseEvent):void{if(WindowState.windows == WindowState.MFightWindow){if(e.target == MClient.client){mouseDown = true;}elseif ( e.target != stage ) e.stopImmediatePropagation();else mouseDown = true; }}static private function onStage_MouseMove(e:MouseEvent):void{if ( mouseDown ) mouseDrag = true;if ( e.target != stage && !mouseDrag ) e.stopImmediatePropagation();}static private function onStage_MouseUp(e:MouseEvent):void{if(WindowState.windows == WindowState.MFightWindow){if ( e.target != stage && !mouseDrag ) e.stopImmediatePropagation();mouseDown = mouseDrag = false;}}static public function deactivate() : void{if ( !stage ) return;stage.removeEventListener( MouseEvent.MOUSE_DOWN, onStage_MouseDown );stage.removeEventListener( MouseEvent.MOUSE_UP, onStage_MouseUp );mouseDown = mouseDrag = false;stage = null;}}}
在项目中出现过当前问题本来以为在程序里面用事件截断处理就可以不会出现事件渗透到starling,而且在pc上是可以实现当前的目标。
但是
真正在移动设备上使用的时候就不是那么简单的了。事件还是能够被starling监控到。咋办呢--直接上源码吧 这也是在一个外文的网站上看到的一个代码哪个网址不记得了不好意思。
希望能够帮助到其他人吧。
0 0
- flash 原生UI 与 starling 鼠标事件冲突解决办法
- Unity3D与android事件冲突的解决办法
- flash鼠标事件
- 原生JS添加鼠标事件
- 前端鼠标拖动事件冲突
- Starling实录——1-Flash Builder安装与配置
- Starling Flash游戏框架游戏开发的介绍与安装
- SwipeRefreshLayout与ViewPager滑动事件冲突源码分析及解决办法
- 背景视图上点击事件与tableView冲突的解决办法
- Tap手势与UITableView点击事件冲突解决办法
- Flash AS3鼠标事件使用
- flash 的鼠标事件详解
- Starling flash 简单应用
- jquery.ui.accordion 1.8.18与jQuery UI Tabs 1.8.18冲突的解决办法
- Starling常见问题解决办法
- 笔记本电脑无线鼠标和触控板冲突解决办法
- starling事件模型
- Starling Touch事件
- ci操作mysql,查询结果集返回 给对象或者数组
- 在 Mac 上搭建 Ruby on Rails 开发环境
- HashMap之JAVA实现
- C++多态的实现原理
- python视频学习资料
- flash 原生UI 与 starling 鼠标事件冲突解决办法
- ajax+jsp异步无刷新从DB取数据
- 第十三周项目1 折腾数组(1)
- [Phonegap+Sencha Touch] 移动开发39 某些安卓手机的webview使用location.href="tel:123456"不能调到打电话的界面
- 学习笔记-SQL基础语法2
- 第13周项目1-数组大折腾(2)
- C++程序放在别的机子上出现“应用程序未能启动”等错误。
- C#网络应用(二)
- 菜鸟的汇编语言学习笔记