面板内部的事件分发及响应方式 指点设备事件的响应 当鼠标落在了An和By的相交的图形表示区域时--> 搜索当前面板链表中的面板,判断鼠标是否落在了某一面板内部,发现鼠 标落在了面板A内--> 事件处理中心采用树的广度优先搜索算法或是深度优先搜索算法,判断鼠 标是否落在了面板A中某一界面元素交互对象内部,发现鼠标指针的位置 在交互对象An区域内部--> 检验An是否添加了对鼠标事件的监听 Am 如果An存在对鼠标事件的监听, 那么去完成事件要执行的任务 SHANDONG UNIVERSETY
面板内部的事件分发及响应方式 ◼ 指点设备事件的响应 ❑ 当鼠标落在了An和By的相交的图形表示区域时-----> ❑ 搜索当前面板链表中的面板,判断鼠标是否落在了某一面板内部,发现鼠 标落在了面板A内-----> ❑ 事件处理中心采用树的广度优先搜索算法或是深度优先搜索算法,判断鼠 标是否落在了面板A中某一界面元素交互对象内部,发现鼠标指针的位置 在交互对象An区域内部-----> ❑ 检验An是否添加了对鼠标事件的监听, 如果An存在对鼠标事件的监听, 那么去完成事件要执行的任务 A B By Bx Am An
用户产生了一个动作后,事件处理中心就获得了用户 的动作和屏幕上的一个坐标仪,y)。 0 使用链表搜索算法遍历链表中每个节点{ f(坐标落在了某个面板区域内部{ 显示该面板及面板内包含的所有界面元素,其余面板按照原来的先后顺序排列; 使用树的搜索算法遍历面板内的每个的单位界面元素{ if(坐标落在了某个单位界面元素的区域内部)then{ if(Succeed(聚焦并激活单位界面元素)X if(选中的单位界面元素添加了特定事件的响应)then{ 将控制权交给单位界面元素交互对象,执行该事件要执行的任务,返 回 } 口 所有面板失去焦点,聚焦到系统要显示的默认界面; SHANDONG UNIVERSETY
◼ 用户产生了一个动作后,事件处理中心就获得了用户 的动作和屏幕上的一个坐标(x, y)。 ❑ 使用链表搜索算法遍历链表中每个节点 { ❑ if (坐标落在了某个面板区域内部) { ❑ 显示该面板及面板内包含的所有界面元素,其余面板按照原来的先后顺序排列; ❑ 使用树的搜索算法遍历面板内的每个的单位界面元素 { ❑ if (坐标落在了某个单位界面元素的区域内部) then { ❑ if(Succeed(聚焦并激活单位界面元素)){ ❑ if (选中的单位界面元素添加了特定事件的响应) then { ❑ 将控制权交给单位界面元素交互对象,执行该事件要执行的任务,返 回; ❑ } ❑ } ❑ } ❑ } ❑ 所有面板失去焦点,聚焦到系统要显示的默认界面; ❑ }