flash学习之mouseChildren 与 mouseEnabled

 如果你有一定的as游戏 开发 经验,那相信你也应该知道但场景里放入好多的子可视对象 时,鼠标的滑动会导致cpu的狂飙;
原因主要在于fp内部在不停的遍历可视对象.你可能会用过或者知道可视对象都有这个方法getObjectsUnderPoint ()

它能够返回鼠标点下的可视对象列表 .这也是鼠标滑过时消耗高的原因所在.当然它更大的用途是用于辅助重绘的实现以及其他.

有什么方法可以降低这块的消耗呢?答案是有的;


每个可视对象都有两个属性

mouseChildren 跟mouseEnabled

mouseChildren 的作用是确定对象的子项是否支持鼠标 而
mouseEnabled  的作用就在于  指定此对象是否接收鼠标消息。 
恩很显然 mouseEnabled跟 mouseChildren就是决定对象是否可以侦听鼠标事件 的关键所在;
事实也证明只要设置了这两个属性鼠标滑过的高消耗就减少了,那是因为但这两个属性都设置为false后 就不在归到遍历树的对象中去了,

 

adobe 帮助的解释:

mouseEnabled

  属性 

mouseEnabled:Boolean

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0 Flash Player 9, Flash Lite 4

指定此对象是否接收鼠标或其他用户输入、消息。默认值为 true ,这表示默认情况下,显示列表上的任何 InteractiveObject 实例都会接收鼠标事件或其他用户输入事件。如果将 mouseEnabled 设置为 false ,则实例不接收任何鼠标事件(或其他用户输入事件,例如键盘事件)。显示列表上的该实例的任何子级都不会受到影响。要更改显示列表上对象的所有子级的 mouseEnabled 行为,请使用 flash.display.DisplayObjectContainer.mouseChildren

设置此属性不会调度任何事件。您必须使用 addEventListener() 方法才能创建交互式功能。

 

mouseChildren

 属性

mouseChildren:Boolean

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0 Flash Player 9, Flash Lite 4

确定对象的子级是否支持鼠标或用户输入设备。如果对象支持鼠标或用户输入设备,用户可以通过使用鼠标或用户输入设备与之交互。默认值为 true

当您使用 Sprite 类的实例(而不是使用 SimpleButton 类)来创建按钮时,此属性很有用。当您使用 Sprite 实例来创建按钮时,可以选择使用 addChild() 方法添加其他 Sprite 实例来修饰该按钮。此过程可能导致鼠标事件出现意外行为,因为当您期望父实例成为鼠标事件的目标对象时,作为子项添加的 Sprite 实例却可能成为目标对象。要确保父实例用作鼠标事件的目标对象,您可以将父实例的 mouseChildren 属性设置为 false

设置此属性不会分派任何事件。您必须使用 addEventListener() 方法才能创建交互式功能。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值