krkr进阶教程6
messagelayer
该教程为水螅制作,未经允许,请勿转载
打开messagelayer.tjs,第一个class是
class LinkButtonLayer extends ButtonLayer
buttonlayer我们以后再讲,LinkButtonLayer就是平时kag的时候用的button的类
这个类和buttonlayer的主要区别就是有个linknum参数,用来记录他是父层的messagelayer层上的第几个按钮,另外就是会受父层的selProcessLock参数影响,另外这个类里可以看到这个东西
function onMouseEnter()
{
parent.keyLink = linkNum;
if(!parent.selProcessLock && onenter !== void) Scripts.eval(onenter);
super.onMouseEnter(...);
}
和这个东西
function onMouseLeave()
{
if(!parent.selProcessLock && onleave !== void) Scripts.eval(onleave);
super.onMouseLeave(...);
}
onenter和onleave就是在这里执行的,用buttonlayer类的话是没有这两个参数的,但是用linkbuttonlayer类的话,他和父层结合比较紧密,所以一般来说如果自己new button的话就继承buttonlayer类自己写一个class重定义onmouseleave之类的比较方便……
下边定义了几个属性不用多说啥了
再往下是选择框的类
class LinkCheckBoxLayer extends CheckBoxLayer
继承了checkboxlayer,老实说我没怎么看过checkboxlayer……这个到讲到的时候再现看吧(死)
这个文件里定义的几个用于messagelayer子层的class都是和messagelayer结合的比较紧密,可以看到每个都有linknum参数,重定义的地方也经常要提到父层状态
值得注意的是这部分
function commit()
{
kag.inputTemp = checked;
Scripts.eval(("(" + exp + ") = kag.inputTemp"));
}
function onChange(checked)
{
if (change !== void) {
kag.inputTemp = checked;
Scripts.eval(("(" + change + ") = kag.inputTemp"));
}
}
commit和change的定义,普通的checklayer没有
再往下是文本框的类
class LinkEditLayer extends EditLayer
值得注意的是这个
function onKeyDown(key, shift, process)
{
// 縦書きの時は右と左を入れ替える
if(Edit_vertical)
{
if(key == VK_LEFT) key = VK_RIGHT;
else if(key == VK_RIGHT) key = VK_LEFT;
}
super.onKeyDown(key, shift, process);
}
Edit_vertical是直接继承了父层的vertical参数的,这个在这里定义了下如果是竖着的就把左右箭头的按下交换了下
另外commit也是在这个class里定义的,普通的editlayer没有
然后是滑条的类
class LinkSliderLayer extends SliderLayer
注意commit和onchange,其中onchange我曾经专门用一篇文章(这里)详细讲过,这里就不多说了……
下边是systembutton了……
class SystemButtonLayer extends ButtonLayer
他和普通linkbuttonlayer的区别主要是没有linknum以及有个noStable参数来控制他的可使用性
再往后是
class RelativeLayer extends KAGLayer
RelativeLayer是messagelayer上的子层facelayer和namelayer用的,这两个东西其实一点都不好用,我试着用过他们然后华丽丽的放弃掉了(死)
kagexpress里边记得没有直接用kag调他们的方法,在ex2里边是可以直接在kag里使用他们的,不过不管怎样都不好用……不如自己另外建个层来得实在……|||||||||
这个class的具体内容也没啥好说的,主要是对着父层校正坐标……
再往下就是正题
class MessageLayer extends KAGLayer
嗯今天困了……就先这样吧下边的明天继续……||||||||||
Created by Hydrozoa.2011
不支持IE7以下浏览器
凯恩插件程序:Hydrozoa 美术:Hydrozoa,红渊