主题:  怎样侦测鼠标是否在一个mc的上面?

zzyhero2000

职务:普通成员
等级:1
金币:1.0
发贴:144
#12003/12/8 15:09:20
如题!



zzyhero2000

职务:普通成员
等级:1
金币:1.0
发贴:144
#22003/12/8 16:59:10
怎么,没人知道吗



DreadKnightOx

职务:普通成员
等级:1
金币:0.0
发贴:71
#32003/12/8 17:47:01
onClipEvent(enterFrame){
    trace(hitTest(_root._xmouse,_root._ymouse))
}



UndeadCraft

职务:版主
等级:4
金币:10.0
发贴:1993
#42003/12/9 9:11:59
用MC.onrollOver更方便吧



DreadKnightOx

职务:普通成员
等级:1
金币:0.0
发贴:71
#52003/12/9 10:42:16
是啊是啊~~~对于一般的应用,比如自画按钮、打靶游戏等等,onrollOver onPress 和 onRelease 方便一些~~


- -偶做游戏习惯了……所有咚咚都是onClipEvent,而不喜欢用flash定制的事件……可能算一个坏毛病把~~~

怎么说呢?- -这些事件都太死板了……你试试用onrollOver这一类事件完成这样一个判断:
当任何时候鼠标移动到mc上的时候 trace一句话。

然后你试试这个操作:

首先按下鼠标正键不松开,然后把鼠标移动mc上
结果什么也不会发生……类似的问题还有很多。

当时我正在做一个RPG ,要求在选择攻击目标的时候,鼠标放到敌人身上的时候 敌人高亮显示……最后栽到上面去了……郁闷之后全部改成了onClipEvent里面判断了......



zzyhero2000

职务:普通成员
等级:1
金币:1.0
发贴:144
#62003/12/9 10:49:03
多谢大侠们的指点,但是如果mc.onRollOver的花,那么这个mc里的按钮就没法用了,



DreadKnightOx

职务:普通成员
等级:1
金币:0.0
发贴:71
#72003/12/9 10:55:43
- - 那就onEnterFrame 把,这样最容易定制。

如果有重叠问题,就在一个比较高层次的 onEnterFrame里面按一定顺序检查,先检查优先级高的,一旦找到就结束整个检索。



UndeadCraft

职务:版主
等级:4
金币:10.0
发贴:1993
#82003/12/9 10:56:47
的确有这问题,虽然你的方法可行,但判断多了以后占用资源就太大了,所以还的想更好的办法来解决



DreadKnightOx

职务:普通成员
等级:1
金币:0.0
发贴:71
#92003/12/9 11:11:45
- -其实一般来说占资源的都是图形.......

不过目前我那个编辑器就开始有这个问题了,所以我要问问规模如何嘛.....如果只有不到20个可以点击的部分应该没什么问题。注意 hitTest的时候 里面的true不要写比较快。

对于大型的窗口系统,比如n个菜单,n个浮动面板......建议做一个专门管理机制......有多极系统 + 多优先级系统+ 判定表....window的真正复杂不是盖的...