锋影
e-mail:174176320@qq.com
1.安装Kanzi。
2.使用Kanzi studio创建工程。
Kanzi创建的工程会包含以下目录结构:
其中,
Tool_project文件夹中存放的是设计师设计的工程,包含kanzi UI的工程的所有文件。
Application文件夹则为代码的工程文件夹。该文件夹下的bin文件夹存放设计师导出的kzb文件,src文件夹
存放编写的代码,config里面存放对应的vs、vc、eclipse工程文件。
UI设计师和软件工程师通过bin目录下的kzb资源文件联系起来。UI设计师通过kanzi studio设计工具导出
kzb资源文件到该目录,而软件工程师使用engine读取该kzb文件创建界面,监听点击事件,传递数据,实现
具体功能。
【设计师设计部分】可以通过以下视频教程进行学习。
http://v.ku6.com/show/eHuNhYr8nd4S7gY7jpwahg...html?st=3_1_2
http://v.17173.com/so-index.html?key=kanzi
http://v.youku.com/v_show/id_XNjU5MTI2ODE2.html?from=y1.7-1.2
【软件工程师编程部分】
1.对于2.8.x版本:
刚创建的Kanzi工程有两个函数,其中kzApplicationConfigure为整个程序的入口,相当于main函数
(kanzi把main函数封装在库中了,只提供kzApplicationConfigure出来,kzApplicationConfigure会
在创建窗口之前回调)。
如下:
1 /**
2 * A typical application configuration function.
3 */
4 KZ_CALLBACK void kzApplicationConfigure(const struct KzaSystemProperties* systemPropert
5 ies, struct KzaApplicationProperties* configuration)
6 {
7 /* Memory reserved for the application. */
8 configuration->memoryPoolSize = 20 * 1024 * 1024; //设置使用内存的大小,默认20Mb
9 configuration->binaryName = "binaries.cfg"; //设置读取kzb的配置文件
10
11 /* Platform specific configuration parameters. */
12 #if defined WIN32 || defined __linux__
13 configuration->windowProperties.style = KZS_WINDOW_STYLE_DEFAULT;
14 configuration->windowProperties.width = 800;
15 configuration->windowProperties.height = 480;
16 #endif
17
18 /* List of available entry points implemented. Implementation is optional. */
19 /* Application lifetime. */
20 configuration->onStartup = startup;
21 configuration->onProjectLoaded = projectLoaded;
22 configuration->onShutdown = shutdown;
23
24 /* Application events. */
25 configuration->onApplicationEvent = applicationEventHandler;
26 configuration->onWindowEvent = windowEventHandler;
27
28 /* Input events. */
29 configuration->onKeyInputEvent = keyInputEventHandler;
30 configuration->onPointerInputEvent = pointerInputEventHandler;
31
32 /* Render cycle. */
33 configuration->onPreRender = preRender;
34 configuration->onPostRender = postRender;
35 configuration->onUpdate = update;
36 }
kzApplicationConfigure函数中可做app的配置,设置内存池大小、窗口大小、窗口类型等,
另外就是在里面注册回调函数,如
configuration->onPostRender = postRender;
为注册每一帧渲染后的回调函数。
2.对于3.2版本则改成了c++的风格,如下:
1 #include <kanzi/kanzi.hpp>
2
3 class NApplicaiton : public ExampleApplication
4 {
5 protected:
6 virtual void onConfigure(ApplicationProperties& configuration) KZ_OVERRIDE;
7
8 virtual void onProjectLoaded() KZ_OVERRIDE;
9
10 virtual void onShutdown() KZ_OVERRIDE;
11
12 virtual void onKeyInputEvent(const KzsInputEventKey* inputData) KZ_OVERRIDE;
13
14 private:
15 NApplicaiton();
16 ~NApplicaiton();
17
18 };
19
20 Application* createApplication()
21 {
22 return new NApplicaiton();
23 }
之前在2.8.x版本中的 注册回调函数的方式在3.2版本换成了 重写ExampleApplication的虚函数,其作用
还是一样的。同样onProjectLoaded会在资源加载完成后背调用。