systembutton的用法
该教程为水螅制作,未经允许,请勿转载
systembutton就像名字所说的,是系统按钮,一般用于对话框上的按钮这种一直存在的东西
它的使用方法和普通按钮基本是一样的,区别就是,它没有target和storage参数。也就是说,想要systembutton点击后发生什么,是一定要在exp里写tjs式的
同时,它比普通的button多了两个属性,一个是name,一个是noStable
name是非常重要而且一定要写的,不同的name就是不同的按钮,也就是说,如果你之前在某层定义了一个name叫做save的systembutton,然后再在该层又定义了一个叫做save的systembutton,那么之前的那个按钮就会被替代掉。
name就是一个systembutton的标志,不填这个参数是无法建立起来systembutton的。
同时,想要单独操作一个systembutton也是要靠name的标识,普通的button的object名字是kag.fore/back.层名.links[按钮序号],而systembutton的名字是kag.fore/back.层名.buttons[按钮的name]
用tjs对按钮们进行单独操作的时候,要注意systembutton和普通button命名的不同。
noStable这个参数,如果是true的话,在游戏trans或者auto、skip状态时按钮就依然有效,如果是false那就是那种不稳定状态下不能点击,默认是false,除非有特殊需求建议不要写成true,非常容易出问题……
在kag里建立一个systembutton通常的写法是这样的
用我在尧光的记事本按钮做例子:
[sysbutton name=book normal="book1" over="book0" enterse="page" clickse="page1" x=736 y=19 exp="kag.callExtraConductor('system.ks', '*book')"]
name属性是一定要写的,上边说过了这里就不多说了
normal、over、enterse、clickse都是和普通button一样的,也没啥可说的
x、y和普通button不同,普通button的建立是用locate的,而systembutton则是直接写x、y坐标,不过其实都一样啦,这个坐标依然是相对于建立按钮的那个层的坐标的,而不是整个窗口的坐标,这点也和locate是一样的。
最后是exp,就是点击按钮后执行的tjs式,我这里写的是kag.callExtraConductor('system.ks', '*book'),意思就是call到system.ks的*book标签,kag的call用tjs式来实现就是用这一句,虽然其实kag的call并不真的是用这个函数,而是用的processCall……但是如果我们在tjs里直接用processCall只能实现同文件的call的效果……所以我们用tjs来实现call的效果话暂时只能先用callExtraConductor
但是callExtraConductor有个致命的问题就是,不能嵌套,如果在用了一个callExtraConductor之后再用一个callExtraConductor,只能返回第二个的地方,无法返回第一个的地方了。请注意这点。
另外,右键的call也是用callExtraConductor的,所以请注意不要在用右键call了之后使玩家可以点击写有callExtraConductor的按钮,那样在返回时就会出错。
另一个常用于systembutton的exp的函数是kag.process(文件名,标签名),这个的作用相当于kag的jump
当然其实作为tjs式来说,可以写各种各样的效果,不过上边两个是写AVG类游戏时systembutton的exp常用到的函数,所以稍微介绍下。
清除层上的systembutton的kag指令是csysbutton,用了就会全部清除。如果要单独改变某一个按钮需要直接用tjs来写。
Created by Hydrozoa.2011
不支持IE7以下浏览器
凯恩插件程序:Hydrozoa 美术:Hydrozoa,红渊