目录

控件的基础用法

2024-11-13 23:08:35

抽象类IObjectExtend

该类被所有基本控件继承包含主要作用是修改控件坐标原点为中心

//基本方法说明
/*该方法替代原来的addChild和addWindow,去除了Window_Layer
* 可以将所有子物体改为视父物体的中心为原点
*/
addObject(hjdd.xxx)

/*该方法替代原来的move
* 作用和原因同上
*/
moveSelf(x,y)

/*移到一个子物体
*/
moveChild(child,x,y)

/*该方法把子物体坐标系上的(lx,ly)转化为父物体坐标系上的点
*/
mapToParent(lx,ly)

/*该方法把物体坐标系上的(lx,ly)转化为子物体(child)坐标系上的点
*/
mapToChild(child,lx,ly)
mapFromParent(lx,ly)

/*有anchor的(PIXI.Sprite)返回false,
* 没有的返回true,可以保证所有变换都以物体中心为原点
*/
needToSelfCoord();

/*捕捉物体上(x,y)能点中的最深层子物体
*/
pickup(x,y)

/*下面鼠标或触屏事件
 * 如果要使用这个事件需要Scene._mouse_message_used=true以及物体自己的this.forbidMessage=false;
 *virtual
*/
mousePressedEvent(x,y)
mouseMoveEvent(x,y)
mouseReleasedEvent(x,y)


/*每个控件都有但不在这个类中
 *每个控件实现方式都不一样,调整过后仍然以中心为原点
*/
setSize(w,h)

WindowBase

继承: Window_Base

改造了初始化方式以及_refreshContents刷新方式,使得它可以随时调整大小和移到位置

/*以对象方式调用WindowBase的绘图方式*/
appendElements(...)
               
/*将通过上述方法添加的元素绘到自己的context上(显示)*/
refreshElement()


///使用样例
/*
this.object=new hjdd.WindowBase();
this.addObject(this.object);//添加到Scene中
this.object.moveSelf(100,100)
this.object.rotation=0.15;
this.object.setSize(300,300);
this.object.appendElements(new hjdd.TextElement(0,0,"text\\V[1]\\I[\\V[2]]\n..."),
new hjdd.ImageElement(0,0,360,360,0,0,360,360,'img/pictures/','saber'));
this.object.refreshElement();//显示上面添加的element
*/

Sprite

继承: PIXI.Sprite

保留了直接调整width和height呈现的缩放功能,实现了一种延迟调整方式应对使用ImageManager加载新图片需要提前预存的问题,使得它可以不会因为调用ImageManager.loadBitmap()没加载好而使得调用的其他调整函数(如moveSelf,setFrame等)被弃置或错误响应

/*选择原图的某个区域来显示,
*它会等到bitmap加载完再调用
*如果bitmap已经完成,那么以后都会是立即调用
*/
setFrame(x,y,width,height);

///使用样例
/*
this.object=new hjdd.Sprite();
this.addObject(this.object);//添加到Scene中
this.object.moveSelf(100,100)
this.object.rotation=0.15;
this.object.setSize(300,300);
this.object.bitmap=ImageManager.loadBitmap('img/pictures/','saber',null,false);
this.object.setFrame(0,0,360,360);//注意,如果不调用这个默认会以原图(0,0,0,0)显示,就是什么都不
								  //显示
*/

Text

继承: PIXI.Sprite

独立的文字,这个控件只解析C、V、I、{、}

/*预先设置文字,该函数会先解析文字以如下形式存起来
* {
*	{
*		_data:null,
* 		_type:'text','variable','icon','fontsize','color'
*		_count:0
* 	}
*	几个值含意说明格式_type;_data;_count
*   _'text';一段文字;_count无效
*	'variavle';为最深层数值;表示解析几次可以得到直接解析结果
*	(如\\V[\\V[\\V[123]]],_data=123,_count=2,需要解析为\\V[直接解析结果],因为Text绘制的时候
*	还会解析最后一次)
*	'icon';最深层数值;表示解析几次可以得到直接解析结果
*	'color';最深层数值;表示解析几次可以得到直接解析结果
*	'fontsize';-12或12;无效
*/
setText(text)

/*显示上面设置的字符串*/
displayLinesText(x,y)

///使用样例
/*
this.object=new hjdd.Text();
this.addObject(this.object);//添加到Scene中
this.object.moveSelf(100,100)
this.object.rotation=0.15;
this.object.setSize(300,300);//这个可以将该控件自身坐标系原点定在(150,150)虽然没什么用
this.object.setText("hell\\V[\\V[123]]o\\C[\\V[\\V[123]]] w\\{olr\\}d!!!");
this.object.displayLinesText();
*/

其它正在完善….

文章简介