给duilib增加脚本支持(一)

 

 

    使用的脚本是angelscript, 是开源的, 官方网址: http://www.angelcode.com/angelscript/

    布局文件中, 有2种写法.

    第一种 <Script language="cplusplus" include="button.as" />

    第二种, 内嵌脚本。

<Script language="cplusplus" >
void OnControlInit(CControlUI @obj)
{
     obj.SetBkColor(0xFFFF0000);
}
</Script>

 

    由于内嵌脚本的方式, 又涉及到复杂的xml解析。所以,内嵌脚本的方式不要影响CMarkup解析。

    先举个例子,

    buttom.as的文件内容

void main2(CControlUI @obj)
{
 obj.SetBkColor(0xFF00FF00);
}

 

如下书写xml布局文件

<?xml version="1.0"?>
<Window size="572,384" sizebox="0,0,8,8" caption="0,0,0,80" equalscale="true">
<Script language="cplusplus" include="button.as">
void OnControlInit(CControlUI @obj)
{
obj.SetBkColor(0xFFFF0000);
}
void main(CControlUI @obj)
{
obj.SetBkColor(0xFF0000FF);
}
</Script>
<VerticalLayout pos="0,0,380,192" bkcolor="0xFFA6CAF0" width="380" height="192" >
<Control pos="38,28,190,155" width="152" height="127" float="true" OnInit="OnControlInit" OnSetFocus="main" OnKillFocus="main2"/>
</VerticalLayout>
</Window>

 

    脚本一共定义了3个函数: OnControlInit, main, main2,  脚本的入口函数参数固定为 CControlUI @obj, 注意@这个符号表示C++里面的引用。

    实现效果,

    当OnInit时,调用OnControlInit, 设置控件背景色

    当获得焦点时, 调用main, 设置控件背景色

    当失去焦点时, 调用main2,设置控件背景色

 
 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值