找回密码
 点一下
查看: 1376|回复: 17

对话框按钮事件获得不了点击按钮是什么回事

[复制链接]
发表于 2009-6-28 18:50:18 | 显示全部楼层 |阅读模式
触发1
[trigger]
   对战初始化
┣━事件
┃   └─地图初始化
┣━条件
┗━动作
     ├─设置 button = (新建的对话框按钮,在 dialog 上, 使用标题: test 快捷键: T)
     └─触发器 - 为 未命名触发器 001 <预设> 添加事件: (对话框 - button 被点击)
[/trigger]

触发2
[trigger]
触发2
┣━事件
┃   └─玩家 - 玩家1(红色) 按下Esc键
┣━条件
┗━动作
     └─对话框 - 对 玩家1(红色) 设置 dialog 显示
[/trigger]

触发3
[trigger]
触发3
┣━事件
┣━条件
┗━动作
     └─自定义代码: call BJDebugMsg(H2S(GetClickedButtonBJ()))
[/trigger]

运行的结果 未命名.jpg

难道这个函数是错的?
发表于 2009-6-28 19:00:57 | 显示全部楼层
I2S(H2I())试试可以不...
回复

使用道具 举报

 楼主| 发表于 2009-6-28 19:06:20 | 显示全部楼层
不要说I2S(H2I())了 ..
我把触发3改成这样写
[trigger]
触发3
┣━事件
┣━条件
┗━动作
     ├─游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示文本: come in
     └─如果所有条件成立则做动作1,否则做动作2
            If - 条件
                button 等于 (点击的对话框按钮)
            Then - 动作
                游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示文本: True
            Else - 动作
                游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示文本: False
[/trigger]

结果如下
未命名.jpg
回复

使用道具 举报

发表于 2009-6-28 19:10:16 | 显示全部楼层
└─触发器 - 为 未命名触发器 001 <预设> 添加事件: (对话框 - button 被点击)

应该是 (对话框 - dialog 被点击)
回复

使用道具 举报

 楼主| 发表于 2009-6-28 19:12:30 | 显示全部楼层
If - 条件
button 等于 (点击的对话框按钮)

你觉得..button是个对话框吗?
回复

使用道具 举报

发表于 2009-6-28 19:24:05 | 显示全部楼层
哇 以前一直在用对话框点击事件 这个为什么会这样呢?
回复

使用道具 举报

 楼主| 发表于 2009-6-28 19:25:54 | 显示全部楼层
确实  换了对话框点击事件 就能获得到点击的对话框按钮了 但是用对话框按钮点击事件 就是不行 郁闷
回复

使用道具 举报

发表于 2009-6-28 19:35:21 | 显示全部楼层
可能纯粹的是这个事件中没有这一个变量吧
回复

使用道具 举报

发表于 2009-6-28 19:45:29 | 显示全部楼层
很可能是TriggerRegisterDialogButtonEvent有问题... 没有返回GetClickedButton() ???

渺小的我怎么可以怀疑强大的BLZ... 完蛋了完蛋了
回复

使用道具 举报

发表于 2009-6-28 19:47:08 | 显示全部楼层

回 7楼(zhuzeitou) 的帖子

的确如此... 事件响应前后的GetClickedButton()一样. 也就是说这个事件没有GetClickedButton()了
回复

使用道具 举报

发表于 2009-6-28 20:01:20 | 显示全部楼层
其实 按钮被点击事件是一个无效事件
回复

使用道具 举报

发表于 2009-6-28 20:03:54 | 显示全部楼层
我觉得是一个免条件判断事件
回复

使用道具 举报

发表于 2009-6-28 20:07:45 | 显示全部楼层
我的意思是说
对于获得按钮来说
这个事件没有用
获得按钮并不响应该事件
回复

使用道具 举报

发表于 2009-6-28 20:13:38 | 显示全部楼层
不响应事件怎么会显示"FALSE"???

事件是被相应了... 因为直接相应的是某个按钮被点击, 所以判断被点击的按钮是不是该按钮就成了废话.
大概出于这个原因, 这个事件没有返回被点击的按钮GetClickedButton()这一变量... 所以if语句会返回FALSE...
回复

使用道具 举报

发表于 2009-6-28 20:19:30 | 显示全部楼层
事件肯定会响应
而且一般做图
就用这个事件
这个获取按钮函数出现在这个事件里是无意义的(知道还判断是不是 多此一举)
直接把要做的代码写里面就是了

还有就是个人认为对话框那个效果 很恶心
一般不用
还是用指令好
回复

使用道具 举报

发表于 2009-6-28 20:21:49 | 显示全部楼层
节约玩家的键盘和记忆量嘛~ 按钮也不是很坏的
回复

使用道具 举报

发表于 2009-6-28 20:30:02 | 显示全部楼层
另外说一下 排泄问题
其实 这个事件 响应的按钮和变量无关
猜测 他其实内部创造 之后 响应 后就销毁
和 进入区域事件差不多。。
所以 添加完时间之后 局部变量的话就直接set = null吧
不过其实好像还是会造成一个句柄的泄漏
因为似乎没有删除按钮这个函数
不过似乎 在对话框 销毁之后会自动 销毁所有按钮
此为猜测
回复

使用道具 举报

 楼主| 发表于 2009-6-28 20:34:49 | 显示全部楼层
我的对话框和按钮时重用的... 我做的是个演示 拿个JASS写..估计没多少能看懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-7-22 00:14 , Processed in 0.195096 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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