扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
用XML来描述界面,C/C++写内部逻辑,用脚本语言来胶合界面和内部逻辑。FTK正是基于这种思想来设计的,所以它自然会提供脚本语言绑定,最早我是想绑定javascript的,这样可以用类似写网页的方式来写程序。但是我又希望FTK能在MTK和展讯那样的手机平台上运行,而javascript引擎可执行代码太大了。所以最后选择了lua绑定,lua的可执行只有100多K,加上FTK,总共大约在300K左右,这样的大小放在MTK和展讯的手机平台应该是可行的。FTK+Lua的方式对SP非常有用(虽然我不太喜欢SP),不但可以隔离各种手机平台的差异,而且可以把程序放在服务器上,而不用全部内置到手机中了。
比如:
实现代码如下:
XUL描述:
xml=[[ <?xml version="1.0" encoding="utf-8"?> <window value="Entry Label"> <label id="1" x="5" y="5" w="$ww/4" h="30" value="Name" /> <entry id="2" x="$ww/4+5" y="5" w="3*$ww/4-15" h="30" value="Li XianJing" /> <label id="3" x="5" y="40" w="$ww/4" h="30" value="EMail" /> <entry id="4" x="$ww/4+5" y="40" w="3*$ww/4-15" h="30"
value="xianjimli@hotmail.com" /> <label id="5" x="5" y="75" w="$ww/4" h="30" value="Mobile" /> <entry id="6" x="$ww/4+5" y="75" w="3*$ww/4-15" h="30"
value="+8613911112222" /> <button id="99" x="5" y="3*$wh/4" w="$ww/2-5" h="50"
attr="$FTK_ATTR_INSENSITIVE" value="Save" /> <button id="100" x="$ww/2" y="3*$wh/4" w="$ww/2-5" h="50"
attr="$FTK_ATTR_FOCUSED" value="Quit" /> </window> ]]
lua代码
function button_quit_on_clicked(button) ftk_quit() print("button_quit_on_clicked") return 0 end function button_save_on_clicked(button) print("button_save_on_clicked") return 0 end ftk_init() win=ftk_xul_load(xml) ftk_widget_show_all(win, 1) quit=ftk_widget_lookup(win, 99) ftk_button_set_clicked_listener(quit, "button_save_on_clicked") quit=ftk_widget_lookup(win, 100) ftk_button_set_clicked_listener(quit, "button_quit_on_clicked") ftk_run()
因为FTK是用C语言写的,要绑定到其它脚本语言也是非常容易的,有兴趣的朋友可以试下。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者