让edit输入框接受回车……
突然想起来前两天好像在群里答应别人做这个的说明的……于是就先把手边的点心放一放写写这个……
也是恰好被问到这个问题的时候我刚做在白菜战记里做了这个功能,所以就总结下发出来吧
一般的edit是和按钮配合使用的,玩家输入文字后点击ok按钮跳转到某个标签,然后那个标签下边写着commit,这是一般的流程。
但是有时候不想要那个按钮,想要直接让玩家输入完毕后按回车就跳转到有commit的按钮,这里就需要修改下editlayer的相关tjs
首先打开editlayer.tjs,在EditLayer的class里增加一个参数用来传递回车会引发的事件,暂定名字为enterevent好了。
增加这个参数后往下翻,找到function onKeyDown,在下边的switch (key) 里加入对回车的反应(这个function里的第二个switch (key) ),就是加入下边这行
case VK_RETURN: return Scripts.eval(enterevent); break;
上边那句的意思就是按了回车后执行enterevent。
不知道怎么加或者加在哪里的人请自己去翻语法文档tjsdoc……我已经是逐步的解释了,但是连语法文档都懒得翻还要我解释的人我会不客气的无视掉的=_=那东西已经有中文版了,就不要再秉持着‘我是小白我怕谁’的态度偷懒了,真想偷懒的话就别做这种东西去看片睡觉吧喵的=_=
然后我们就要在kag里把这个enterevent传进去。打开messagelayer.tjs,找到里边的function addEdit,在里边写入这样一句
object.enterevent = elm.enterevent;
这句话的意思就是当你在message层上建立editlayer的时候,把你在kag里写入的指令中的enterevent的参数传给新建立的editlayer。
这样就可以了,然后在你建立输入框的时候,加上这个参数就可以了,如下
[edit name="f.name" length=300 maxchars=10 enterevent=“kag.process('script1.ks','*nameok')”]
kag.process('script1.ks','*nameok')就是跳转到那个有commit的标签去,流程和用按钮是一样的。
[ 本帖最后由 sarah707 于 2010-5-18 14:36 编辑 ]
|