当前位置: 首页 > 文档资料 > KAG 标签文档 v1.0 >

图像

优质
小牛编辑
126浏览
2023-12-01

标签

描述

image, img

读取图像

pimage

在指定的图层上读取部分图像,部分图像会把原来的图像部分地覆盖

ptext

在图层上描绘文字

syncmsg

把所有message里层的内容复制到表层

freeimage

清除指定的图层

clearlayers

清除表或里的所有图层

动画

animstart

开始动画,其实此标签是多余的

animstop

停止动画,事实上并没有这样的功能

wa

等待动画停止为止,事实上并没有这样的功能

trans

trans

场景转换

stoptrans

停止场景转换

wt

等待场景转换完成

move

move

让图层移动起来

stopmove

停止所有图层的移动

wm

等待图像移动完成

quake

quake

让全部图层震动,除了message层

stopquake

停止所有图层的震动

wq

等待震动完成

action

action

执行运动模块

stopaction

停止执行中的模块

wact

等待执行中的模块完成

领域图像

mapimage

读取领域图像,使用它时用bug,需要修正

mapaction

设定领域图像的行为,使用它有一定限制性

mapdisable

让领域图像无效化

image,img

说明:

(1) 用于读取图像

(2) 内部通过getLayerFromElm(elm).loadImages(elm)来实现

基本属性:

storage: (string)

key: (0xRRGGBB,“clPalIdx”,“clAdapt”,“clAlphaMat + 0xRRGGBB”)

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”……,num)

message得到的是当前的信息层,string得到的是当前的layers[+num]层)

以上字典还未完结,当layer选择是message,message0,message1……时,可通过loadImages (storage,key)读入图像

当layer选择是base时,有

storage: (string)

key: (string)

opacity: (int 0 to 255)

pos: (left/top/center,以上字符串之一)

left: (int)

top: (int)

clipleft: (int)

cliptop: (int)

clipwidth: (int)

clipheight: (int)

fliplr: (bool)

flipud: (bool)

grayscale: (bool)

mcolor: (string)

mopacity: (int)

rgamma: (0.0 ~ 9.0)

rfloor: (int 0 to 255)

rceil: (int 0 to 255)

ggamma: (0.0 ~ 9.0)

gfloor: (int 0 to 255)

gceil: (int 0 to 255)

bgamma: (0.0 ~ 9.0)

bfloor: (int 0 to 255)

bceil: (int 0 to 255)

mapimage: (string)

mapaction: (string)

当layer选择是stage或event或characterlayer时,有

storage: (string)

key: (string)

visible: (bool)

opacity: (int 0 to 255)

index: (long)

mode: (copy/alpha/addalpha/transp/opaque/rect/add/sub/mul/dodge/darken/lighten/screen/pile

,以上的字符串之一)

pos: (left/top/center,以上字符串之一)

left: (int)

top: (int)

clipleft: (int)

cliptop: (int)

clipwidth: (int)

clipheight: (int)

fliplr: (bool)

flipud: (bool)

grayscale: (bool)

mcolor: (string)

mopacity: (int)

rgamma: (0.0 ~ 9.0)

rfloor: (int 0 to 255)

rceil: (int 0 to 255)

ggamma: (0.0 ~ 9.0)

gfloor: (int 0 to 255)

gceil: (int 0 to 255)

bgamma: (0.0 ~ 9.0)

bfloor: (int 0 to 255)

bceil: (int 0 to 255)

mapimage: (string)

mapaction: (string)

例子1:

kag.fore.layers[0].visible=true;

kag.tagHandlers.image(%[storage: "config.jpg", page: "fore", layer:"0"]);

这样图像将会位于layers[0]层

例子2:

kag.fore.messages[0].visible=true;

kag.tagHandlers.image(%[storage: "config.jpg", page: "fore", layer:"message0"]);

这是有问题的,因为message0在读取图像时不是使用字典的,所以会出现错误

  也就是说,对于messagelayer,我们不能使用读取图片

pimage

说明:

(1) 在指定的图层上读取部分图像,部分图像会把原来的图像部分地覆盖

(2) 读入PartialImage,注意是不能指定layer为message,message0,message1......的,否则会出错找不到loadPartialImage因为MessageLayer并没有继承AnimationLayer

(3) 内部通过getLayerFromElm(elm).loadPartialImage(elm)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num )

message得到的是当前的信息层,num得到的是当前的layers[+num]层)

tagname: (string 默认是pimage,主要用于tag上)

storage: (string)

key: (string)

fliplr: (bool)

flipud: (bool)

dx: (位置的x轴偏移值,也就是坐标的x位置了)

dy: (位置的y轴偏移值,也就是坐标的y位置了)

sx: (要复制的图像x坐标值)

sy: (要复制的图像y坐标值)

sw: (要复制的图像宽度)

sh: (要复制的图像高度)

opacity: (int 0 to 255)

mode: (copy,opaque的话就不能透明,pile,alpha,addalpha可透明)

例子1:

kag.fore.layers[0].setOptions(%[visible:true,left:100,top:100]);

kag.fore.layers[0].setSize(500,500);

kag.tagHandlers.pimage(%[storage: "bg", page: "fore", layer:"0",dx:0,dy:0,sx:20,sy:20,sw:500,sh:500]);

这样就可以在刚才的layers[0]层上加上一层图像

例子2:

[pimage storage=bg page=fore layer=base dx=0 dy=0 sx=20 sy=20 sw=500 sh=500]

这样就能在bg的图像上截取一个矩形区域在base层上显上显示

ptext

说明:

(1) 在表/里层上描绘文字

(2) 内部通过getLayerFromElm(elm).drawReconstructibleText(elm)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num)

message得到的是当前的信息层,num得到的是当前的layers[+num]层)

tagname: (string 默认是ptext,主要用于tag上)

text: (string)

vertical: (bool,预设是false,也就是逆时针旋转2700*0.1度)

face: (dfxxxx)

size: (int)

angle: (以0.1度为单位,逆时针旋转)

italic: (bool,预设是false)

bold: (bool,预设是false)

edge: (bool,预设是false)

edgecolor: (0x000000)

shadow: (bool,预设是true)

shadowcolor: (0x000000)

color: (0x000000)

antialiased: (预设是true ,用途不明)

例子:

kag.tagHandlers.ptext(%[x:100 , y:100 , text:"test", size:20, color: 0xffffff , page: "fore", layer:"base" , bold:true]);

syncmsg

说明:

(1) 把所有messagelayer里层(back)的内容复制到表层(fore)

(2) 内部通过messageLayer的assignComp()实现

属性:无

例子:

kag.updateBeforeCh=false;

game.current(%[page:"back",layer:"message0"]);

game.font(%[size:50,color:0xffffff]);

game.ch(%[text:"longmo"]);

game.syncmsg();

操作的是kag.back.messages[0],在上面描绘文字,是不可视的,然后把它复制到表层

屏幕上就显示出了longmo

freeimage

说明:

(1) 清除指定的图层,注意清除messagelayer层是有错误的,因为它并没有继承AnimationLayer

(2) 内部主要通过调用getLayerFromElm(elm).freeImage(elm)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num)

message得到的是当前的信息层,num得到的是当前的layers[+num]层

例子:

var game=kag.tagHandlers;

game.image(%[layer:"base",page:"fore",storage:"bg"]);

game.freeimage(%[layer:"base",page:"fore"]);

屏幕上什么也没有显示,因为freeimage了

clearlayers

说明:

(1) 清除所有page(表或里)的图层,清除的所有层会以visible的状态显示

(2) 清空的层包括base, stage, event, layer, message, select, mapSelect

(3) 内部主要通过调用freeImage来清除图像,在select和mapselect上调用done()

属性:

visible: (bool)

page: (“back” 或 “fore”,page默认是fore)

例子:

kag.updateBeforeCh=false;

var game=kag.tagHandlers;

kag.fore.base.visible=true;

game.image(%[storage:"bg.jpg",layer:"base",page:"fore"]);

game.origch(%[text:"abc"]);

game.origr();

game.origch(%[text:"def"]);

game.clearlayers(%[visible:false]);

清除所有图层,上面的messages[0]和base层都被清除,并设定它们的visible状态

Base层有里visible,所以并不会改变它的visible状态,base层永远都是可视的

animstart

说明:

(1) 开始动画

(2) 这对message层是无效的,因为它没有继承AnimationLayer,不能执行动画

(3) 其实这个标签是多余的,见下面的例子

(4) 内部通过调用getLayerFromElm(elm).startAnim(elm)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num)

message得到的是当前的信息层,string得到的是当前的layers[+string]层

seg: (int)

target: (string)

例子1:

var game=kag.tagHandlers;

kag.fore.layers[0].loadImages(%[storage:"PageBreak.png",visible:true]);

//game.animstart(%[layer:"0",page:"fore",seg:0]);

不需要animstart这一句,动画就会自动地执行

其唯一用处是通过改变target来使动画得到改变

例子2:

在PageBreak.asd最后面加上以下语句

*myinfo

@iscript

System.inform("myinfo");

@endscript

然后执行

var game=kag.tagHandlers;

kag.fore.layers[0].loadImages(%[storage:"PageBreak.png",visible:true]);

game.animstart(%[layer:"0", page:"fore", seg:0, target:"*myinfo"]);

因为标签的跳转,动画并没有显示,而是弹出一个myinfo的对话框

animstop

说明:

(1) 作用是停止动画,但事实上并不能停止

(2) 内部调用了getLayerFromElm(elm).stopAnim(+elm.seg)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num)

message得到的是当前的信息层,string得到的是当前的layers[+num]层

seg: (int)

例子:

var game=kag.tagHandlers;

kag.fore.layers[0].loadImages(%[storage:"PageBreak.png",visible:true]);

game.animstop(%[layer:"0",page:"fore",seg:0]);

动画并没有停止

即是使用tag

@image layer=0 page=fore storage=PageBreak.png visible=true

@animstop layer=0 page=fore seg=0

动画也不能停止

wa

说明:

(1) 等待动画停止为止

(2) 内部通过调用waitAnimation(elm)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… string)

message得到的是当前的信息层,string得到的是当前的layers[+string]层)

seg: (int)

例子:

kag.updateBeforeCh=false;

var game=kag.tagHandlers;

kag.fore.layers[0].loadImages(%[storage:"PageBreak.png", visible:true]);

game.wa(%[layer:"0",page:"fore",seg:0]);

game.ch(%[text:"hello"]);

屏幕上照样会显示hello,并未能等到动画停止

不只是tjs,在kag上也是如此

trans

说明:

(1) 场景的转换,把里层的内容trans到表层上,如果里层为空的话,看上去就会是表层在消失,因为空白的里层trans到表层上

(2) 内部通过getLayerPageFromElm(elm, false).beginTransition(elm)实现

属性:

layer: (number)

method有三种设定,不同的设定会有不同的属性,如下所示

method: “universal”(默认)

rule: string

vague: int

time: int

exchange: bool

withchildren: true (预设)

method: “crossfade”

time: int

exchange: bool

withchildren: true (预设)

method: “scroll”

from: (“left”, “top” , “right” , “bottom”)

stay: (“nostay” , “stayfore” , “stayback”)

time: int

exchange: bool

withchildren: true (预设)

例子1:

var updateBeforeCh=false;

var game=kag.tagHandlers;

game.current(%[layer:"message0",page:"back"]);

game.ch(%[text:"abcdefgh"]);

game.trans(%[layer:"message0",method:"crossfade",time:2000]);

把里message0层的文字用2000毫秒时间渐变到外message0上

例子2:

game.image(%[layer:"0",page:"back",storage:"config",visible:true]);

game.trans(%[method:"crossfade",time:2000]);

把layer0层的图像config渐变出来

注意game.trans中绝不能是game.trans(%[layer:"0",method:"crossfade",time:2000]);

加上了layer属性的设定就会不能进行渐变,原因不明

例子3:

game.image(%[layer:"0",page:"fore",storage:"config",visible:true]);

game.trans(%[method:"crossfade",time:2000]);

图像就会渐变式地消失掉

stoptrans

说明:

(1) 停止渐变,显示的是最终的渐变结果

(2) 内部通过stopAllTransitions()实现

例子:

game.image(%[layer:"0",page:"back",storage:"config",visible:true]);

game.trans(%[method:"crossfade",time:2000]);

game.stoptrans();

显示的只是图像,也就是渐变的结果

wt

说明:

(1) 等待渐变结束

(2) 内部通过waitTransition(elm)实现

属性:

canskip: (bool)

例子1:

game.image(%[layer:"0",page:"back",storage:"config",visible:true]);

game.trans(%[method:"crossfade",time:2000]);

game.wt(%[canskip:false]);

System.inform("abc");

tjs的话,abc的对话框会立刻显示,在tjs中并不能实现等待的效果

例子2:

@iscript

game.image(%[layer:"0",page:"back",storage:"config",visible:true]);

game.trans(%[method:"crossfade",time:2000]);

@endscript

@wt canskip=false

@iscript

System.inform("abc");

@endscript

只有当渐变完时才会弹出abc的对话框,在kag中能真正地实现等待的效果

move

说明:

(1) 让图层移动

(2) 在移动进行时,如果直接关闭窗口,会弹出错误对话框,这必须手动去处理这种情况

(3) 内部主要通过getLayerFromElm(elm).beginMove(elm)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num)

message得到的是当前的信息层,string得到的是当前的layers[+num]层)

path: string ( 如: “(200,200,100),(500,100,255)” ),(200,200)和(500,100)分别是初始坐标和终止坐标

accel: int

time: int

spline: bool (指是否使用spline补间)

time: int

例子1:

var game=kag.tagHandlers;

game.image(%[storage:"config",layer:"0",page:"fore",visible:true]);

game.move(%[path:"(100,100,0),(400,700,255),(0,0,0)",accel:2,time:2000,spline:true,layer:"0",page:"fore"]);

图片就能够移动起来

例子2:

var updateBeforeCh=false;

var game=kag.tagHandlers;

game.ch(%[text:"longmo"]);

game.move(%[path:"(100,100,0),(400,700,255),(0,0,0)",accel:2,time:2000,spline:true,layer:"message0",page:"fore"]);

message0层也能移动

stopmove

说明:

(1) 停止所有图层的移动

(2) 内部主要通过stopAllMoves()实现

例子:

var updateBeforeCh=false;

var game=kag.tagHandlers;

game.ch(%[text:"longmo"]);

game.move(%[path:"(100,100,0),(400,700,255),(50,50,80)",accel:2,time:2000,spline:true,layer:"message0",page:"fore"]);

game.stopmove();

图像移动停止在最终的位置上

wm

说明:

(1) 等待移动结束

(2) 内部主要通过waitMove(elm)实现

属性:

canskip: (bool)

例子1:

@iscript:

var updateBeforeCh=false;

var game=kag.tagHandlers;

game.ch(%[text:"longmo"]);

game.move(%[path:"(100,100,0),(400,700,255),(0,0,0)",accel:2,time:2000,spline:true,layer:"message0",page:"fore"]);

game.wm(%[canskip:false]);

@endscript

@iscript

System.inform("move");

@endscript

Move的对话框是瞬间显示出来的,在tjs中并未能有真正等待的效果

例子2:

@iscript

var updateBeforeCh=false;

var game=kag.tagHandlers;

game.ch(%[text:"longmo"]);

game.move(%[path:"(100,100,0),(400,700,255),(0,0,0)",accel:2,time:2000,spline:true,layer:"message0",page:"fore"]);

@endscript

@wm canskip=false

@iscript

System.inform("move");

@endscript

在kag中就能实现等待的效果

quake

说明:

(1) 让全部图层震动,除了message层

(2) 内部主要通过doQuake(elm)实现

属性:

vmax

hmax

time

timemode

例子:

@iscript

kag.fore.base.drawText(400, 100, "fdsf", 0xffffff);

kag.tagHandlers.image(%[storage:"bg",layer:"0",page:"fore",visible:true]);

kag.tagHandlers.quake(%[vmax:20, hmax:20, time:3000, timemode:"ms"]);

@endscript

stopquake

说明:

(1) 停止所有图层的震动

(2) 内部主要通过stopQuake()实现

例子:

@iscript

kag.fore.base.drawText(400, 100, "fdsf", 0xffffff);

var test = new Layer(kag, kag.fore.base);

test.visible = true;

test.loadImages("a");

test.setPos(100,100,100,100);

kag.tagHandlers.quake(%[vmax:20, hmax:20, time:3000, timemode:"ms"]);

kag.tagHandlers.stopquake();

@endscript

wq

说明:

(1) 等待震动完成

(2) 内部主要通过waitQuake(elm)实现

属性:

canskip: (bool)

例子:

@iscript

kag.fore.base.drawText(400, 100, "fdsf", 0xffffff);

kag.tagHandlers.image(%[storage:"bg",layer:"0",page:"fore",visible:true]);

kag.tagHandlers.quake(%[vmax:20, hmax:20, time:3000, timemode:"ms"]);

@endscript

@wq canskip=true

Abcdef

当点击时就会停止震动,显示文字abcdef

action

说明:

(1) 在指定的层上执行相应的运动模块

(2) messagelayer因为没继承GraphicLayerEx,所以不能进行action

(3) 内部主要通过getLayerFromElm(elm).beginAction(elm)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num) ,message得到的是当前的信息层,num得到的是当前的layers[+num]层)

module: 模块的名称,模块的其它参数可参看下面的

模块名称

描述

属性

说明

移动模块 (LayerMoveModule, LayerModule.type=0)

LayerNormalMoveModule

直线加速

%[x:___,y:___,time:___,delay:____]

LayerAccelMoveModule

加速移动

%[x:___,y:___,time:___,delay:____]

不能设置加速度,通过时间来计算加速度

LayerDecelMoveModule

减速运动

%[x:___,y:___,time:___,delay:____]

LayerParabolaMoveModule

拋物线运动

%[x:___,y:___,time:___,toptime:___,delay:____]

如果没有toptime,就取time/2为toptime

toptime是通过拋物线顶点的时间

震动模块 (LayerActionModule, LayerModule.type=1)

LayerVibrateActionModule

上下左右震动

%[vibration:___,waittime:____,time:___,delay:___]

vibration是震动的幅度

LayerJumpActionModule

上下震动

%[vibration:___,cycle:____,time:___,delay:___]

cycle是周期的时间

LayerJumpActionOnceModule

向下方震动

%[vibration:___,cycle:____,time:___,delay:___]

只有一次,时间超过了周期,也就是cycle的一半,就停止

LayerWaveActionModule

左右震动

%[vibration:___,cycle:____,time:___,delay:___]

LayerWaveOnceActionModule

向左方震动

%[vibration:___,cycle:____,time:___,delay:___]

只有一次,时间超过了周期,也就是cycle的一半,就停

LayerFallActionModule

匀速落下运动

%[distance:___,falltime:____,time:___,delay:___]

如果falltime为空,falltime=time

要注意的是开始的位置是原纵向位置减去distance

放缩模块 (LayerZoomModule, LayerModule.type=3)

LayerNormalZoomModule

等比扩大

扩大时加速

缩小时减速

%[zoomx:____,zoom:____,time:___,delay:___]

zoomx是开始时的比例,zoom是结束时的比例

LayerVRotateZoomModule

3D纵轴旋转

%[angvel:___,time:___,delay:___]

模拟3D效果绕纵轴的旋转

在这里并没有向那个方向旋转之分

angvel为正为负时结果都是相同

zoomy在整个过程中都保持一样,角速度是度/秒

LayerHRotateZoomModule

3D横轴旋转

%[angvel:___,time:___,delay:___]

模拟3D效果绕横轴的旋转

在这里并没有向那个方向旋转之分

angvel为正为负时结果都是相同

zoomx在整个过程中都保持一样, 角速度是度/秒

LayerHeartBeatZoomModule

摸拟心跳

option=%[zoom:____,time:___,delay:___]

摸拟心跳,一放一缩,只进行一次

zoom是放大后的比例,action仅一次

LayerVibrateZoomModule

放缩的震动

%[vibraton:___,waittime:____,time:___,delay:___]

以zoomx和zoomy为基准进行放缩震动

最后停止时是zoomx,zoomy

旋转模块 (LayerRotateModule,LayerModule.type=2)

LayerNormalRotateModule

普通旋转

%[angvel:___,time:___,delay:___]

angvel是角速度,单位是度/秒,正时是逆时针,负时是顺时针

LayerVibrateRotateModule

振子

%[vibraton:___,cycle:____,time:___,delay:___]

来回左右转动的振子

LayerFalldownRotateModule

跌倒旋转

%[angle:___,time:___,delay:___]

模拟跌倒的情形,有加速度

angle是跌倒时旋转了的角度,也就是最终的旋转值

LayerToRotateModule

旋转

%[angle:___,time:___,delay:___]

按angle进行旋转,没有加速度

angle是旋转的角度

透明度模块 (LayerModeModule, LayerModule.type=4)

LayerBlinkModeModule

忽明忽暗

%[showtime:___,hidetime:___,time:___,delay:___]

先经历showtime,再经历hidetime,如此循环下去

LayerFadeModeModule

淡入淡出

%[intime:___,outtime:___,time:___,delay:___]

先经历淡入intime,透明度由0变成当前的透明度,

再经历淡出outtime,透明度由当前透明度变成0,如此循环)

LayerFadeToModeModule

透明变化

%[opacity:___,time:___,delay:___]

匀速变更透明度

例子1:

var game=kag.tagHandlers;

game.image(%[storage:"config",layer:"0",page:"fore",visible:true]);

game.action(%[layer:"0",page:"fore",module:LayerVibrateActionModule,vibration:20,waittime:100,time:2000]);

这样图片就会震动

例子2:

@image storage=config layer=0 page=fore visible=true

@action layer=0 page=fore module=LayerNormalMoveModule x=400 y=400 time=2000

这样使用kag,图片就能移动

stopaction

说明:

(1) 在指定的层上停止action

(2) 内部通过getLayerFromElm(elm).stopAciton(elm)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num)

message得到的是当前的信息层,string得到的是当前的layers[+num]层)

例子1:

var game=kag.tagHandlers;

game.image(%[storage:"config",layer:"0",page:"fore",visible:true]);

game.action(%[layer:"0",page:"fore",module:LayerVibrateActionModule,vibration:20,waittime:100,time:2000]);

game.stopaction(%[layer:"0",page:"fore"]);

layer0层停止移动

例子2:

@image storage=config layer=0 page=fore visible=true

@action layer=0 page=fore module=LayerNormalMoveModule x=400 y=400 time=2000

@stopaction layer=0 page=fore

在终止的位置上停止action

wact

说明:

(1) 等待action结束

(2) 内部主要通过waitLayerAction(elm)和waitAction(elm)实现

属性:

canskip: (bool)

例子1:

@iscript

var game=kag.tagHandlers;

game.image(%[storage:"config",layer:"0",page:"fore",visible:true]);

game.action(%[layer:"0",page:"fore",module:LayerVibrateActionModule,vibration:20,waittime:100,time:2000]);

game.wact(%[canskip:true]);

@endscript

@iscript

System.inform("action");

@endscript

对话框立即弹出,tjs并不能实现等待效果,只能用kag实现

例子2:

@image storage=config layer=0 page=fore visible=true

@action layer=0 page=fore module=LayerNormalMoveModule x=400 y=400 time=2000

@wact canskip=true

@iscript

System.inform("action");

@endscript

等到移动结束或者旧击左键,就会弹出action对话框

mapimage

说明:

(1) 读取领域图像,注意领域图像是不可视的

(2) 执行此语句时,会有bug,可参考我曾发布的GraphicLayer中的修正方法

(3) 内部通过getLayerFromElm(elm).loadProvinceImage(elm.storage)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num)

message得到的是当前的信息层,num得到的是当前的layers[+num]层

storage: (string)

例子:

var game=kag.tagHandlers;

kag.fore.layers[0].visible=true;

kag.fore.layers[0].isetPos(0,0,1024,768);

game.mapimage(%[storage:"province.bmp",layer:"0",page:"fore"]);

这样就能成功读取领域图像了,注意province.bmp的大小是1024*768,所以isetPos的大小设置也需要是1024*768

mapaction

说明:

(1) 设定领域图像的行为

(2) 此标签似乎只能用于StageLayer或BaseLayer

(3) 内部通过getLayerFromElm(elm).loadProvinceActions(elm.storage)实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num)

message得到的是当前的信息层,num得到的是当前的layers[+num]层

storage: (string)

例子:

mapaction似乎在所有的层都无法执行,如果新建一个CharacterLayer,情况都是一样

但是新建一个GraphicLayerEx或者StageLayer或者BaseLayer就完全无问题

等价的代码如下:

var mainlayer=new StageLayer(kag,kag.primaryLayer,"name",4);

mainlayer.isetPos(0,0,1024,768);

mainlayer.visible=true;

mainlayer.loadProvinceImage("province");

mainlayer.loadProvinceActions("kkk.ma");

mainlayer.hitType=htProvince;

mainlayer.hitThreshold=125;

在kkk.ma文档中写入

168:hint="东京";exp="System.inform('tokyo')";cursor="dinosau2.ani";

249:hint="北京";

Exp是指当点击区域时执行的东西

使用kag.fore.stage , kag.fore.base , kag.fore.layers[i] , kag.fore.messages[i] , kag.fore.event通通都不行,原因不明

因为直接使用loadImages的mapimage能读取领域图像,但不论是tjs还是kag,运行起来还是没有结果

kag.fore.layers[0].isetPos(0,0,1024,768);

game.image(%[layer:"0", page:"fore", storage:"province", visible:true, mapimage:"province.bmp"]);

虽然会自动地读取province.ma,但是什么都没有显示

mapdisable

说明:

(1) 让指定的领域图像无效化

(2) 内部通过调用getLayerFromElm(elm).clearProvinceActions()实现

属性:

page: (“fore” 或 “back”)

layer: (“base”,“stage”,“event”,“message”, “message0”, “message1”, “message2”…… num)

message得到的是当前的信息层,num得到的是当前的layers[+num]层)

例子:

执行时如kag.tagHandlers.mapdisable(%[layer: “0” , page: “back”]);或

@mapdisable layer=0 page=back

因为mapimage和mapaction无法执行,所以无法调试