系统
标签 | 描述 |
title | 修改窗口标题 |
cursor | 修改鼠标样式 |
s | 停止脚本的读取 |
close | 关闭窗口 |
截图 | |
locksnapshot unlocksnapshot | 截图 |
标签跳转 | |
startanchor gotostart | 设定描点 回到设定锚点地方 |
record goback | 设定游戏的记录点 回到记录点 |
读取储存 | |
copybookmark erasebookmark | 把一个存档复制到另一个储档中 删除存档 |
disablestore | 是否可读取或储存 |
store | 是否可储存 |
tempsave tempload | 暂时保存 读取暂时保存的状态 |
save load | 读取或储存 |
clearsysvar | 清除sflags字典中的内容 |
clearvar | 清除flags字典中的内容 |
回想模式 | |
recollection stoprecollection endrecollection | 进入回想模式 暂停回想模式 终止回想模式 |
脚本 | |
eval trace | 执行代码 执行代码,并显示debug信息 |
input | 弹出输入对话框来给指定变量赋值 |
autolabel | 自动地读取autolabel.ks |
interrupt | 中断conductor |
loadplugin | 读取插件 |
title
说明: (1) 修改窗口的标题 (2) 内部通过setTitle(elm.name)实现 |
属性: name: (string) |
例子: kag.tagHandlers.title(%[name:"abc"]); |
cursor
说明: (1) 设定鼠标的样式 (2) 内部通过setCursor(elm)实现 |
属性: pointed: 在button上 click: 按右键时 draggable: 拖曳时 default : 正常时 |
例子: @image layer=base page=fore storage="5" @iscript var ml=new MessageLayer(kag,kag.fore.base); ml.setPosition(%[visible:true, draggable:true, left:100, top:200, width:200, height:100]); kag.tagHandlers.cursor(%[click:"coin.ani", pointed:"banana.ani", "default"=>"horse.ani", draggable:"3d.cur"]); @endscript |
s
说明: (1) 停止脚本的读取 (2) 内部实现较为复杂,详见代码 |
例子1: var game=kag.tagHandlers; kag.updateBeforeCh=false; game.ch(%[text:"abc"]); game.s(); game.ch(%[text:"abc"]); s在tjs中并不能起到停止的作用 |
例子2: abc @s abc 只显示一个abc,停止在s上 |
close
说明: (1) 关闭窗口 (2) 内部通过closeByScript(elm)实现 |
属性: ask: true/false,true时会弹出对话框问是否退出 |
例子l: @iscript kag.tagHandlers.close(%[ask:true]); @endscript |
例子2: @close ask = true |
locksnapshot
说明: (1) 进行截屏,每进行截屏时必须要使用unlocksnapshot,载屏的图会记录到kag的snapshotLayer中 (2) 内部通过lockSnapshot()实现 |
例子1: var game=kag.tagHandlers; game.locksnapshot(%[]); kag.fore.base.loadImages(%[storage:"bg"]); kag.snapshotLayer.visible=true; kag.snapshotLayer.setPos(0,0,100,100); locksnapshot每使用一次截屏,必须使用unlocksnapshot,才能进行第二次截屏 |
例子2: var game=kag.tagHandlers; game.locksnapshot(); kag.fore.base.loadImages(%[storage:"bg"]); kag.snapshotLayer.visible=true; kag.snapshotLayer.setPos(0,0,100,100); game.unlocksnapshot(); 因为unlocksnapshot了,所以屏幕中并没有显示图像 |
unlocksnapshot
说明: (1) 释放kag中的snapshotLayer的空间,具体可能看locksnapshot (2) 内部通过unlockSnapshot()实现 |
startanchor
说明: (1) 设定回到游戏标题的锚点 (2) 内部通过setStartAnchorEnabled(elm.enabled === void || +elm.enabled)实现 |
属性: enabled: (bool) |
例子1: @iscript var game=kag.tagHandlers; game.startanchor(%[enabled:true]); @endscript @linemode mode=page 1 2 3 4 5 @iscript game.gotostart(%[ask:true]); @endscript 如果把enabled设定为false或者把整个startanchor代码去除,当gotostart回到锚点处时将什么东西都不执行,所以应把它设定成true |
例子2: @startanchor enabled=true @linemode mode=page 1 2 3 4 5 @gotostart ask=true 和上例执行的结果一样 |
gotostart
说明: (1) 回到设定锚点的地方,可参考startanchor (2) 内部通过goToStartWithAsk()或goToStart()实现 |
属性: ask : true false |
record
说明: (1) 游戏的记录点 (2) 内部通过setToRecordHistory()实现 |
例子1: *start|abc @linemode mode=page 1 @iscript var game=kag.tagHandlers; game.record(); @endscript 2 3 @iscript game.goback(%[ask:true]); @endscript 4 5 record时会记录存点,goback就会跳回到记录的存点 当文字显示到3时,会弹出对话框是否要回到abc,点击是时就会回到2 |
例子2: *start|abc @linemode mode=page 1 @record 2 3 @goback ask=true 4 5 和例子1的作用一样 |
goback
说明: (1) 回到记录点,可参看record (2) 内部通过setToRecordHistory()实现 |
属性: ask : true 询问是否返回 (呼叫goBackHistory(true)) false 没有询问直接返回 (呼叫goBackHistory(false)) |
tempsave
说明: (1) 暂时保存状态 (2) 内部通过tempSave(+elm.place)实现 |
属性: place : int 呼叫tempSave(+elm.place) |
例子1: *start|abc @laycount messages=10 @rclick enabled=true call=true storage=first.ks target=*rclick 1 @l 2 @l 3 @l 4 @l 5 @l 6 @l 7 @l 8 @l 9 @l 10 @s *rclick @tempsave @current layer=message1 @layopt layer=message1 visible=true longmo1 @l longmo2 @l longmo3 @tempload backlay=true bgm=true se=true @layopt layer=message1 visible=false @return tempload前必须要有进行过tempsave,以上代码的意思是当显示1 2 3 4 5……时点击右键,当依次显示完longmo1,longmo2,longmo3后就会返回到重新显示1 2 3 4 5……中 |
例子2: *start|abc @laycount messages=10 @iscript var game=kag.tagHandlers; game.rclick(%[enabled:true,call:true,storage:"first.ks",target:"*rclick"]); @endscript 1 @l 2 @l 3 @l 4 @l 5 @l 6 @l 7 @l 8 @l 9 @l 10 @s *rclick @iscript game.tempsave(%[]); game.current(%[layer:"message1"]); game.layopt(%[layer:"message1",visible:true]); @endscript longmo1 @l longmo2 @l longmo3 @iscript game.tempload(%[backlay:true,bgm:true,se:true]); game.layopt(%[layer:"message1",visible:false]); @endscript @return 使用tjs执行,结果和example1一样,tempsave的位置可设置可不设置 |
tempload
说明: (1) 读取暂时保存的状态,可参考tempsave (2) 内部通过tempLoad(+elm.place, elm)实现 |
属性: place : (int) 呼叫tempLoad(+elm.place, elm) bgm : (bool) se : (bool) backlay : (bool) |
copybookmark
说明: (1) 将from的读取/储存项目复制到to的读取/储存项目,from和to是是读取/储存进度的项目索引值索引值,表示将from号的BookMark储存到to号上 (2) 内部通过copyBookMark(+elm.from, +elm.to)实现 |
属性: from: to: |
例子: save1[r] save1 @save place=0 ask = false @oporig save2[r] save2 @save place=2 ask = false @oporig hello[r] yes @copybookmark from=0 to=2 @load place=2 ask = true ;结果, 问是否返回存档3, 是的话从save1[r], save1重新开始 |
erasebookmark
说明: (1) 清除某个读取/储存项目, 会将bookMarkDates[num] = "",num是读取/储存进度的项目索引值索引值, 是一个由0开始的Integer (2) 内部通过eraseBookMark(+elm.place)实现 |
属性: place: integer |
例子: save1[r] save1 @save place=0 ask = false @oporig save2[r] save2 @save place=2 ask = false @oporig hello[r] yes @ erasebookmark place=2 @load place=2 ask = true ;结果, 不问是否返回存档3 |
disablestore
说明: (1) 是否可读取或储存 (2) 内部通过tempDisableStore(elm)实现 |
属性: store= true/false restore= true/false true时不可读/存,false时可读/存 |
例子: save1[r] save1 @oporig ; save1[r],save1,@oporig之后在menu中可读档不可存档 @iscript kag.tagHandlers.disablestore(%[store:false,restore:false]); @endscript save2[r] save2 @oporig ; save2[r],save2,@oporig之后在menu中可读档可存档 @iscript kag.tagHandlers.disablestore(%[store:true, restore:true]); @endscript save3[r] save3[r] @oporig ; save3[r],save3,@oporig之后在menu中不可读档不可存档 |
store
说明: (1) 是否可储存 (2) 内部通过setStoreEnabled(+elm.enabled)实现 |
属性: enable = true/false |
例子: save1[r] save1 @oporig ; save1[r],save1,@oporig之后在menu中可读档不可存档 @iscript kag.tagHandlers.store(%[enabled:false]); @endscript save2[r] save2 @oporig ; save2[r],save2,@oporig之后在menu中不可读档不可存档 @iscript kag.tagHandlers.store(%[enabled:true]); @endscript save3[r] save3[r] @oporig ; save3[r],save3,@oporig之后在menu中可读档可存档 |
load
save
说明: (1) 读取或储存 (2) load内部通过loadBookMarkWithAsk(+elm.place)和loadBookMark(+elm.place)实现 (3) save内部通过saveBookMarkWithAsk(+elm.place)和saveBookMark(+elm.place)实现 |
属性: ask: true/false (ask 为false时自动执行, true时会弹出询问框) place: number (读取或储存的位置) |
例子: save1[r] save1 @save place=0 ask = false @oporig save2[r] save2 @save place=2 ask = false @oporig hello[r] yes @load place=2 ask = true ;结果, 问是否返回存档3, 是的话从save2[r], save2重新开始 |
clearsysvar
说明: (1) 清除sflags字典中的内容clearSystemVariables() (2) 内部通过clearSystemVariables()实现 |
例子: kag.tagHandlers.clearsysvar(); |
clearvar
说明: (1) 清除flags字典中的内容clearVariables() (2) 内部通过clearVariables()实现 |
例子: kag.tagHandlers.clearvar(); |
recollection
说明: (1) 开始进入回想模式 var recollectionBookmark = 5000; var recollectionEndLabel; //表示回忆结束的标签 var recollectionStorage; //回忆结束时迁移前面存储 var recollectionTarget; //回忆结束时的迁移前面目标 先保存好现在剧本读取到的位置到 storage, target 之后会按doneStorage, doneTarget来进行剧本回想 (2) 内部通过startRecollection(elm)实现 |
属性: no, doneStorage, doneTarget, storage, target |
例子: kag.tagHandlers.recollection(%[no:20, doneStorage:"second.ks", doneTarget:"*start"]); 这样就能执行second.ks标签为*start的内容,no的作用是能够读取5000+no的存盘,如果有的话 如果不需读取存盘,可用以下的形式 kag.tagHandlers.recollection(%[storage:"second.ks",target:"*start"]); |
stoprecollection
说明: (1) 回想模式实行停止,执行后就不能返回到之前的剧本 (2) 内部通过stopRecollection(elm)实现 |
endrecollection
说明: (1) 回想模式实行终止 (2) 内部通过endRecollection()实现 |
例子: kag.tagHandlers.recollection(%[no:20,doneStorage:"second.ks",doneTarget:"*start"]); kag.tagHandlers.endrecollection(); 并不能够停止文档的读取,原因不明 #bugger 406 isSleep = true; inSleep = true; |
eval
说明: (1) 执行代码 (2) 内部通过Scripts.eval(elm.exp)实现 |
属性: exp: (string) |
例子: property p1 { getter(){ System.inform("p1"); } } kag.tagHandlers.eval(%[exp:'p1']); |
trace
说明: (1) 将文字转成代码,并将对象的回传值及类型显示在debug message中 (2) 内部通过Scripts.eval(exp)和dm()实现 |
属性: exp: (string) |
例子: property p1 { getter(){ System.inform("p1"); return "this is p1"; } } kag.tagHandlers.trace(%[exp:'p1']); |
input
说明: (1) 弹出文字输入框来对指定的变量进行赋值 (2) 内部通过inputString(elm)实现 |
属性: name : string title : string prompt : string |
例子: var A = "HELLO"; kag.tagHandlers.input(%[name : 'A', title : "Input", prompt : "please input string:"]); |
autolabel
说明: (1) 会自动地读取autolabel.ks (2) 内部通过conductor.loadScenario("autolabel.ks")、conductor.goToLabel("*autoLabelLabel")实现 |
interrupt
说明: (1) 返回-2进行中断 (2) 内部通过实现 |
loadplugin
说明: (1) 读取插件 (2) 内部通过Plugins.link(elm.module)实现 |
属性: module: (string) |
例子: @loadplugin module=wuvorbis.dll |