0
点赞
收藏
分享

微信扫一扫

clayui界面库系列教程之三:详解CLAYUI_BFRAME


公有成员

void 

SetForeground (CLAYUI_FRAME

 

将传入的子frame提到最前面.

void 

TriggerAnimation

 

根据消息触发动画.

void 

TriggerAnimation (char *aname)

 

触发标识为aname的动画.

int 

GetFrameIDByName (char *framename)

 

根据名称标识别得到子frame的frameID.

void 

SetFrameIDByName (char *framename, int frameid)

 

设置一个名称标识与frameID的关联.

CLAYUI_FRAME

GetChildByID (DWORD frameid)

 

得到frameID为frameid的子frame

virtual void 

AddMsg_unity (CLAYUI_MSG *msg)

 

为frame添加一条消息msg

void 

DeleteFrame (char *idname)

 

删除名称标识为idname的子frame

virtual void 

UpdateLayout ()

 

更新布局

virtual void 

SetLayout (BOOL isuselayout, int layoutslotindex, char *layoutname)

 

设置使用布局库里的布局

virtual void 

Clear ()

 

清除子frame,皮肤,动画资源

virtual void 

InitBFrame (CLAYUI_BFRAME *gitemframe, CLAYUI_BFRAME

 

初始化

virtual void 

LoadFromMem (BYTE *filebuffer, DWORD filesize, BOOL isMemMgr=TRUE)

 

从内存块里读取布局

int 

LoadFromFile (char *filepath)

 

从文件里读取布局

virtual void 

UserAction (CLAYUI_MSGINFO *msginfo, int x, int y, DWORD msg)

 

用户消息响应函数

int 

AddGraphicsItem (HL_GITEM graitem)

 

添加一个图形

void 

AddAnimation (CLAYUI_ANIMATION *anim)

 

添加一个动画

CLAYUI_FRAME

AddFrame (BOOL iscreateIndex, char *framename, int x, int y, int width, int height, INT64 life)

 

添加一个子frame

CLAYUI_FRAME

AddCustomFrame (BOOL iscreateIndex, char *framename, int x, int y, int width, int height, INT64 life, CLAYUI_FRAME

 

添加一个自定义的frame

CLAYUI_ANIMATION * 

GetAnimation (char *idname)

 

通过idname得到动画对象

CLAYUI_FRAME

GetChildFrame (char *idname)

 

通过idname得到子frame

HL_GITEM 

GetGraphicsItem (char *idname)

 

通过idname得到图形对象

void 

TriggerAnimation (DWORD msg, CLAYUI_FRAME

 

由消息触发动画

成员函数文档


void CLAYUI_BFRAME::AddAnimation

(

CLAYUI_ANIMATION * 

anim

)

 



添加一个动画

anim对象必须是通过new操作符生成的对象,加入到frame里后,由frame负责销毁

 

 


CLAYUI_FRAME* CLAYUI_BFRAME::AddCustomFrame

(

BOOL 

iscreateIndex,

 

 

char * 

framename,

 

 

int 

x,

 

 

int 

y,

 

 

int 

width,

 

 

int 

height,

 

 

INT64 

life,

 

 

CLAYUI_FRAME

fram,

 

 

int 

insertindex = -1 

 

)

 

 



添加一个自定义的frame

改函数可以传入一个以CLAYUI_FRAME为基类的指针

 

 


CLAYUI_FRAME* CLAYUI_BFRAME::AddFrame

(

BOOL 

iscreateIndex,

 

 

char * 

framename,

 

 

int 

x,

 

 

int 

y,

 

 

int 

width,

 

 

int 

height,

 

 

INT64 

life 

 

)

 

 



添加一个子frame

iscreateIndex: 设为0

framename: 名称标识

x, y: 子frame的坐标,以其父frame的左上角坐标为原点

width, height: 子frame的宽度和高度

life: 生命周期

该函数返回创建的子frame的指针

 

 


int CLAYUI_BFRAME::AddGraphicsItem

(

HL_GITEM 

graitem

)

 



添加一个图形

添加图形后,图形就由frame负责管理,销毁

 

 


virtual void CLAYUI_BFRAME::AddMsg_unity

(

CLAYUI_MSG * 

msg

)

[virtual]



为frame添加一条消息msg

如果frame里已经有相同类型的消息,则此条消息会被丢弃并删除

相同类型的消息是指:消息ID与消息发送方相同。

但是当消息里含有用户自定义的数据时,即使消息ID与消息发送方相同,也会被认为是不同的消息

 

 


virtual void CLAYUI_BFRAME::Clear

(

 

)

[virtual]



清除子frame,皮肤,动画资源

重载CLAYUI_FRAME。

 

 


void CLAYUI_BFRAME::DeleteFrame

(

char * 

idname

)

 



删除名称标识为idname的子frame

这里并不是真正删除,只是给子frame设置一个"删除"的标记

 

 


CLAYUI_ANIMATION* CLAYUI_BFRAME::GetAnimation

(

char * 

idname

)

 



通过idname得到动画对象

 

 


CLAYUI_FRAME* CLAYUI_BFRAME::GetChildByID

(

DWORD 

frameid

)

 



得到frameID为frameid的子frame

一旦设置关联后,凡是名称标识为framename的frame被添加时,frameID都为frameid

 

 


CLAYUI_FRAME* CLAYUI_BFRAME::GetChildFrame

(

char * 

idname

)

 



通过idname得到子frame

 

 


HL_GITEM CLAYUI_BFRAME::GetGraphicsItem

(

char * 

idname

)

 



通过idname得到图形对象

 

 


virtual void CLAYUI_BFRAME::InitBFrame

(

CLAYUI_BFRAME

gitemframe,

 

 

CLAYUI_BFRAME

parent,

 

 

HL_GRAPHICS 

draw,

 

 

BOOL 

iscreateIndex 

 

)

 

[virtual]



初始化

gitemframe: 管理图形资源的frame

iscreateIndex: 设为0

 

 


int CLAYUI_BFRAME::LoadFromFile

(

char * 

filepath

)

 



从文件里读取布局

 

 


virtual void CLAYUI_BFRAME::LoadFromMem

(

BYTE * 

filebuffer,

 

 

DWORD 

filesize,

 

 

BOOL 

isMemMgr = TRUE 

 

)

 

[virtual]



从内存块里读取布局

isMemMgr == TRUE:filebuffer由BFRAME负责销毁,

isMemMgr == FALSE:filebuffer由外部负责销毁

 

 


void CLAYUI_BFRAME::SetFrameIDByName

(

char * 

framename,

 

 

int 

frameid 

 

)

 

 



设置一个名称标识与frameID的关联.

一旦设置关联后,凡是名称标识为framename的frame被添加时,frameID都为frameid

 

 


virtual void CLAYUI_BFRAME::SetLayout

(

BOOL 

isuselayout,

 

 

int 

layoutslotindex,

 

 

char * 

layoutname 

 

)

 

[virtual]



设置使用布局库里的布局

isuselayout: 是否使用布局库

layoutslotindex: 布局槽编号

layoutname: 布局名称

 

 


void CLAYUI_BFRAME::TriggerAnimation

(

DWORD 

msg,

 

 

CLAYUI_FRAME

frame 

 

)

 

 



由消息触发动画

 

 


virtual void CLAYUI_BFRAME::UpdateLayout

(

 

)

[virtual]



更新布局

 

 


virtual void CLAYUI_BFRAME::UserAction

(

CLAYUI_MSGINFO * 

msginfo,

 

 

int 

x,

 

 

int 

y,

 

 

DWORD 

msg 

 

)

 

[virtual]



用户消息响应函数

用户可以在这里编写消息处理的相关代码



举报

相关推荐

0 条评论