求教 tjs 中 在layer 或者message层写字的方法
现在已知的是
drawText();
但是不知道控制字体以及大小的方法;
还有
processCh('');
同上
实际上的具体问题是
自己建了一个类
class miniLayer extends KAGLayer
{
//其中包括一些 诸如下述情况
var i;
var Messages=[];
var _maxMessageLayerNum=1;
for (i =1;i<=_maxMessageLayerNum;i++)
{
Messages=new MessageLayer(window,this);
}
//当然这样可以用 诸如 addButton addSliderLayer等 MessageLayer的函数来构建这个 miniLayer。
//但是 关于文字的书写控制如何做
//drawText尝试了 可以写 但是不清楚控制字体的方法
//processCh()尝试了 ......但是没有效果。。。嘎嘎
}
现在这个类 的完成度 如下
//------自定义类 myLayer------
class miniLayer extends KAGLayer
{
var name;
var Messages=[]; //messages层
var Layers=[]; //layers层
var backGroundLayer; //背景层
var backGroundButtonLayer; //底层功能层
var _left,_top,_width,_height; //坐标 以及 大小
var _maxLayerNum; //最大layer数
var _maxMessageLayerNum; //最大messagelayer数
var _elm=%[]; //当前属性
var _Messages_elm=[]; //message层属性
var _Layers_elm=[]; //layer层属性
var _Messages_addelm=[]; //message层相对属性
var _Layers_addelm=[]; //layer层相对属性
//构造函数
function miniLayer(win,par,EXname)
{
name=EXname;
var elm=%[];
super.KAGLayer(win, par);
_left=0;
_top=0;
_width=400;
_height=300;
absolute = 100000;
opacity = 256;
visible = false;
_elm.left=_left;
_elm.top=_top;
_elm.width=_width;
_elm.height=_height;
_elm.index = absolute;
_elm.opacity = opacity;
_elm.visible = visible;
_maxLayerNum=0;
_maxMessageLayerNum=0;
// Layers[1] = newLayer(1);
// resetLayerOptions(1);
// Messages[1] = newMessageLayer(1);
// resetMessageLayerOptions(1);
Layers[0] = newLayer(0);
backGroundLayer = Layers[0];
resetLayerOptions(0);
Messages[0] = newMessageLayer(0);
backGroundButtonLayer = Messages[0];
resetMessageLayerOptions(0);
setSize(_width,_height);
setPos(_left,_top);
setButtons();
super.setOptions(_elm);
}
//析构函数
function finalize()
{
var i;
for (i=0;i<=_maxLayerNum;i++)
{
invalidate Layers;
}
for (i=1;i<=_maxMessageLayerNum;i++)
{
invalidate Messages;
}
super.finalize(...);
}
//--基本设定 --
function setOptions(elm)
{
_left=elm.left if elm.left !=void;
_top= elm.top if elm.top !=void;
_width=elm.width if elm.width != void;
_height=elm.height if elm.height !=void;
absolute = elm.index if elm.index !=void;
opacity = elm.opacity if elm.opacity !=void;
visible = elm.visible if elm.visible !=void;
_elm.left=_left;
_elm.top=_top;
_elm.width=_width;
_elm.height=_height;
_elm.index = absolute;
_elm.opacity = opacity;
_elm.visible = visible;
super.setOptions(_elm);
if (_elm.visible == false)
{
hide();
}
}
//--显示 --
function show()
{
var i;
visible = true;
_elm.visible=visible;
focus();
setMode();
for (i=0;i<=_maxLayerNum;i++)
{
Layers.visible = _Layers_elm.visible;
}
for (i=1;i<=_maxMessageLayerNum;i++)
{
Messages.visible = _Layers_elm.visible;
}
}
function hide()
{
var i;
visible=false;
_elm.visible=visible;
for (i=0;i<=_maxLayerNum;i++)
{
Layers.visible = false;
}
for (i=1;i<=_maxMessageLayerNum;i++)
{
Messages.visible = false;
}
removeMode();
}
function setButtons()
{
var elm=%[];
//------退出按钮------
var Bwidth=40;
elm.exp=name+".hide()";
elm.normal='xx';
elm.caption="x";
Messages[0].locate(_elm.width-Bwidth);
Messages[0].addButton(elm);
//------add other buttons
}
//--重置显示--
function reset()
{
var i;
super.setOptions(_elm);
for (i=0;i<=_maxLayerNum;i++)
{
Layers.setOptions(_Layers_elm);
}
for (i=0;i<=_maxMessageLayerNum;i++)
{
Messages.setOptions(_Messages_elm);
}
}
//--设定大小 --
function setSize(x,y)
{
var elm=%[];
_width = x;
_height = y;
_elm.width = x;
_elm.height = y;
elm.width = x;
elm.height = y;
super.setSize(...);
reset();
}
//--设定位置 --
function setPos(x,y)
{
var i;
var elm=%[];
_left = x;
_top = y;
elm.left = x;
elm.top = y;
_elm.left = elm.left;
_elm.top = elm.top;
super.setPos(...);
reset();
}
//新建message layer 元素
function newMessageLayer(num)
{
var templayer=new MessageLayer(kag, this, 'Message'+num, num, true);
_Messages_elm[num]=%[];
_Messages_addelm[num]=%[];
return templayer;
}
//新建 layer 元素
function newLayer(num)
{
var templayer=new CharacterLayer(kag, this, 'Layer'+num, num);
_Layers_elm[num]=%[];
_Layers_addelm[num]=%[];
return templayer;
}
//设定最大layer数
function setMaxLayerNum(num)
{
var i;
if(_maxLayerNum<num)
{
for (i=_maxLayerNum+1;i<=num;i++)
{
Layers=newlayer(i);
}
}
else if(_maxLayerNum>num)
{
for (i=_maxLayerNum;i>num;i--)
{
invalidate Layers;
}
}
_maxLayerNum=num;
}
//设定最大messagelayer数
function setMaxMessageLayerNum(num)
{
var i;
if(_maxMessageLayerNum<num)
{
for (i=_maxMessageLayerNum+1;i<=num;i++)
{
Messages=newMessagelayer(i);
}
}
else if(_maxMessageLayerNum>num)
{
for (i=_maxLayerNum;i>num;i--)
{
invalidate Messages;
}
}
_maxMessageLayerNum=num;
}
//设定 message layer属性
function resetMessageLayerOptions(num)
{
_Messages_elm[num].left = _elm.left;
_Messages_elm[num].top = _elm.top;
_Messages_elm[num].width = _elm.width;
_Messages_elm[num].height = _elm.height;
_Messages_elm[num].opacity = _elm.opacity;
_Messages_elm[num].index = _elm.index + num*100 + 50;
_Messages_elm[num].visible = true;
_Messages_addelm[num].left = 0;
_Messages_addelm[num].top = 0;
_Messages_addelm[num].width = _elm.width;
_Messages_addelm[num].height = _elm.height;
_Messages_addelm[num].opacity = _elm.opacity;
_Messages_addelm[num].index = num*100+50;
_Messages_addelm[num].visible = _elm.visible;
}
function setMessageLayerOptions(num,elm)
{
_Messages_elm[num].left = (_elm.left + elm.left) if (elm.left != void);
_Messages_elm[num].top = (_elm.top + elm.top) if (elm.top !=void);
_Messages_elm[num].width = elm.width if (elm.width !=void);
_Messages_elm[num].height = elm.height if (elm.height !=void);
_Messages_elm[num].opacity = elm.opacity if (elm.opacity != void);
_Messages_elm[num].index = (_elm.index + elm.index) if (elm.index != void);
_Messages_elm[num].visible = elm.visible if elm.visible !=void;
Messages[num].setOptions(_Messages_elm[num]);
reset();
}
//设定 layer 属性
function resetLayerOptions(num)
{
_Layers_elm[num].left = _elm.left;
_Layers_elm[num].top = _elm.top;
_Layers_elm[num].width = _elm.width;
_Layers_elm[num].height = _elm.height;
_Layers_elm[num].opacity = _elm.opacity;
_Layers_elm[num].index = _elm.index + num*100;
_Layers_elm[num].visible = true;
_Layers_addelm[num].left = 0;
_Layers_addelm[num].top = 0;
_Layers_addelm[num].width = _elm.width;
_Layers_addelm[num].height = _elm.height;
_Layers_addelm[num].opacity = _elm.opacity;
_Layers_addelm[num].index = num*100+50;
_Layers_addelm[num].visible = _elm.visible;
}
function setLayerOptions(num,elm)
{
_Layers_elm[num].left = (_elm.left + elm.left) if (elm.left != void);
_Layers_elm[num].top = (_elm.top + elm.top) if (elm.top !=void);
_Layers_elm[num].width = elm.width if (elm.width !=void);
_Layers_elm[num].height = elm.height if (elm.height !=void);
_Layers_elm[num].opacity = elm.opacity if (elm.opacity != void);
_Layers_elm[num].index = (_elm.index + elm.index) if (elm.index != void);
_Layers_elm[num].visible = elm.visible if elm.visible != void;
Layers[num].setOptions(_Layers_elm[num]);
reset();
}
}
|