aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 9379|回复: 3

webLayout事件不起效了

[复制链接]

1

主题

6

回帖

75

积分

一级会员

积分
75
发表于 2012-5-29 14:55:39 | 显示全部楼层 |阅读模式
wl.onMouseDown = function (layoutEle, x, y, params, pparams) {
        mainForm.msgbox("zz");
}


更新前上述代码是OK的,更新后,点击后不弹出框框了。

wl 就是 web.layout。

170

主题

2184

回帖

1万

积分

管理员

积分
13236
发表于 2012-5-29 19:10:16 | 显示全部楼层
import web.layout;
var wbLayout = web.layout(winform.layoutWindow,0xFFFF/*_HL_HANDLE_ALL*/ );

这样就可以让窗体响应所有事件了。你可以在web.layout() 的第二个参数中选择监听哪些事件.
他的默认值是   0x100
/*_HL_HANDLE_BEHAVIOR_EVENT*/ 也就是处理所有交互事件, 但是忽略鼠标键盘等事件

在新版本中,有很多更好的方式可以附加事件监听对象,他们可以监听限定的对象, 拥有更好的性能.
而且这些监听对象可以是独立的库或者对象,可以更好的模块化。
例如  wbLayout.attachEventHandler()  layoutEle.attachEventHandler()
另外还有强大的 behavior( 参考标准库中的 web.layout.behavior 名字空间下面的实现 )


1

主题

6

回帖

75

积分

一级会员

积分
75
 楼主| 发表于 2012-5-30 09:53:11 | 显示全部楼层
Jacen 发表于 2012-5-29 19:10
import web.layout;
var wbLayout = web.layout(winform.layoutWindow,0xFFFF/*_HL_HANDLE_ALL*/ );

非常感谢,新版本中确实支援了对单个元素的事件响应,这个是之前一直想知道的

var layoutEle = wl.getEle("content");
layoutEle.onMouseClick = function( ltTarget,ltEle,x,y,mouseParams ) {
        mainForm.msgbox("你好");
}
layoutEle.attachEventHandler();

这里再请教一下,「layoutEle.attachEventHandler();」这句代码有没有可能在未来省去,因为已经指定事件了肯定是需要绑定的。

我感觉是否可能简化成:

wl.getEle("content").onMouseClick = function( ltTarget,ltEle,x,y,mouseParams ) {
        mainForm.msgbox("你好");
}

非常感谢。

29

主题

658

回帖

4138

积分

超级版主

积分
4138
发表于 2012-5-30 10:10:26 | 显示全部楼层
你获取节点的代码在程序中的数量可能是惊人的,
每个对象都去监听事件会浪费大量的不必要去浪费的资源.

当一个东西被设计的好像很完美了,他已经没有多少实用价值了,
so, 请简简单单的加上这句你看起来没有作用的代码.
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-4-16 22:08 , Processed in 0.056597 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表