你不要对stage添加鼠标移动事件,改成player.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler)
试一试。
mousemove这种事件是有东西去触发就会发生。它的逻辑有可能是当鼠标的坐标在某个区域内时,就触发事件:if( mousemove )//鼠标划过
{
if( Mousemove != null )
{
Mousemove( ..)
}
}
其实就是一个简单的事件,比如自己在做业务逻辑处理时,需要在处理完毕通知使用这个业务逻辑的用户,就可以定义一个事件:
public event EventHandler ProcessCompleted
当业务逻辑处理完毕时,触发这个事件:
//处理完毕,通知调用者
if( ProcessCompleted != null )
{
ProcessCompleted(...)
}
而在调用者那里,他可以注册这个事件以在处理完毕时得到通知
Biz.ProcessCompleted += MyMethod
就是这么一个流程。但觉有点乱,希望你能看懂。。。
最初的UI控制权全在开发人员,也就是程序提醒用户输入,或者程序必须在条件满足时必须触发事件,后来这部分工作被移交给了UI框架,也就是你说的系统。在上面的例子中业务逻辑处理模块同样也就是你这个意义上的系统。WINFORM事件是如何触发的我不清楚,但在web程序里如点击事件并不是框架通过timer或新线程来一直轮训是不是触发了事件,而是通过回发页面,回发后系统会取得引起回发的控件的id,从而相应的执行为该控件定义的回发事件。不过我相信在winform里也不应该会通过timer或线程来判断事件是不是触发了。
放在你准备触发那个事件的地方
自己建立一个按钮类,比如CMyButton,继承于MFC的Button类。用向导添加CMyButton的OnMouseMove(...)函数。
在mfc设置向导里为按钮关联CMyButton类。
用向导添加对话框的OnMouseMove(...)函数。
当鼠标放到按钮上的时候触发按钮类的OnMouseMove函数,这时用SetWindowText设置按钮的文本。
当鼠标移开按钮的时候触发对话框类的OnMouseMove函数,这时用SetDlgItemText设置按钮的文本。
明白了不??
留下你的邮箱,我把工程文件发给你
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)