自己做了一个界面库,这年头搞技术的不容易啊,大家来评评看吧

kiloopt 2011-06-20 03:04:56
上2张图大家预览一下吧



下载

谈谈我自己的想法吧,我的目标是将clayui做成一个C++版的 Flex/WPF/Silverlight,因为,Flex/WPF/Silverlight的一个共同之处就是能编写出具有华丽效果的界面,然而,要想在C++里使用他们,是比较困难的。当然,你可以在MFC里放上一个FLASH Activex控件,然后”宣称“C++里也是可以用的,但是,这种用法,我个人觉得用起来很憋屈。Flex那是肯定只能使用Flex Builder来进行开发的,而WPF/Silverlight,可能是我使用得不多,或者孤陋寡闻,确实不知道如何在C++里使用,只知道可以用C#来做开发,可能也可以使用托管c++来做,这方面我的知识比较缺乏,就不继续说了。

然后,可以使用C++来实现这些效果的,我知道的,就是大名鼎鼎的QT了,QT的确是个好东西,不过我没用过。曾经,有一个机会摆在我的眼前,那次我本可以和QT结缘的,当时整个项目使用的是MFC,有个界面BOSS要求界面要好看,要华丽,要IPhone一些,于是我想到了QT,不过在翻阅众多资料之后,始终没有找到如何在MFC里插入一个QT界面的完美的解决方案,由于时间紧迫,最后,我还是可耻的使用了FLASH Activex控件,这个界面也被公司里的Flex开发人员包揽了,记得好象是用FSCommand传递的消息,当时,看着BOSS在会议上夸那个用 Flex的人,我心里真的很不是滋味。当然,如果MFC里能很方便的插入一个QT开发的界面的话,今天就不会有clayui了。

还有其他界面库,例如CEGUI,这个也用过,但是要用好,还是挺难的,其他的,比如GTK,MINIGUI,wxwidgets之类的,就没缘分去使用他们了

这里,还要提一下scaleform,这个号称是硬件加速的FLASH界面开发库,玩过游戏大作的,肯定多多少少都知道这个,像质量效应,星际2就用的这个,甚至虚幻引擎都把它集成进来了,当然,它的表现力确实不是吹的,效果很好,不过我没有使用过,当年BOSS开会时对我发彪,界面能不能搞得像星际2一样好看,我说,可以的,买人家的专业界面库,星际2的界面就是用这个做的,BOSS斜着眼睛瞄着我,多少钱,几千几万?如果能达到那个效果,就让财务去买好啦,我说,听说好象要7,8万美金,BOSS顿了一下,那好,那你先去研究下,看到底怎么样。然后我去scaleform的官网申请了下,后来,scaleform没有鸟我,BOSS也再没提这个事,这事就这样,结了。

scaleform的老总据说是adobe的老总的弟弟,不知道是不是真的,但是不管是不是真的,sclaeform应该是获得了flash的支持的,但是他本身是从gameswf发展而来,从gameswf一个开源flash播放器发展到现在三千多万被autodesk收购,真的是很不简单。 scaleform的具体开发流程我不是很了解,能不能使用C++来开发更是不得而知,网上关于这方面的资料少之甚少,如果园子里有人用过,不妨说一下。

还有就是国内的几个换肤库,在baidu里搜”界面库“,第一页都是那几个换肤库打的广告,还有direct ui,我个人觉得这是在概念炒作,我个人也下载了direct ui的例子,但是,效果跟flex/silverlight/wpf比起来,还差了好远。这几个换肤库,说实话,还是很好用的,只需要少量代码,就可以换个漂亮的皮肤,用很少的工作量获取不错的效果,这个性价比是蛮高的,我刚工作时就看过APPFACE的广告贴,到现在,他已经由一个老总,一个程序员,一个美工的小工作室,变成了一个公司,据说已经获得投资,可以说,走上了正轨,还听说,VS的下一个版本中将集成他的换肤库,这个消息,个人觉得有点假,但是不管怎样,这也是人家努力的成果,希望他以后发展越来越好。

再就是国内几个大软件的界面,QQ,讯雷做得是很不错的,QQ还有个WPF的概念版,如果C++能实现WPF的效果,估计QQ的会做得更好,个人觉得讯雷 7的界面比QQ的更加动态一些。其他软件,比如类似115的一些下载客户端,360,都是实现的换肤,几乎看不到华丽的透明,或者动态效果。还有最近比较热的开源界面框架,chrome和金山卫士的,通过这些开源界面框架,我们能学到很多知识,也能做出好看的界面,但是比较遗憾的是缺乏一个完善的界面编辑器,而一个比较完善的界面编辑器的开发难度,我个人觉得不在开源框架之下,所以,这方面,还是有很多工作需要去完善的,也期待研究这些框架的大牛们能带给我们更多的惊喜。

现在,还是来说说这个界面库吧,目前命名为clayui,实现了窗口裁剪,消息传递,三维变换等功能,并提供了几个自带的控件,就是上图里看到的那些了。clayui是免费使用的,但是目前暂时不开源。

目前clayui包含的功能如下:

1. 支持导入flash 6.0格式的FLASH动画(不支持actionscript)

2. 支持导入带alpha通道的PNG图形

3. clayui通过freetype支持对文字的渲染

4. 支持对矢量/ 栅格图形的旋转,缩放,反走样

5. 支持tween缓动动画,色调渐变

6. 支持窗口的基本功能:窗口裁剪,消息传递等

7. 支持换肤,窗口的布局

8. 支持滤镜效果:阴影,发光

9. 支持窗口的三维变换
...全文
1609 46 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztj2005 2012-12-22
  • 打赏
  • 举报
回复
能自己独立开发,值得赞扬!
luozhongzhu 2011-09-02
  • 打赏
  • 举报
回复
迅雷的?看着怎么那么熟悉呢?
bobommsky 2011-07-02
  • 打赏
  • 举报
回复
支持楼主,目前很多国内的界面库都是操作系统相关的,作者你能做一个纯C++的,还有3D变换什么的,个人感觉你的数学功底很不错,我想放在嵌入式环境下也是可行的,希望楼主坚持下去,有机会在你这里讨教几招!加油!
  • 打赏
  • 举报
回复
漂亮啊!!!
l245382052 2011-06-22
  • 打赏
  • 举报
回复
界面很漂亮啊
咿呀大河马 2011-06-22
  • 打赏
  • 举报
回复
支持!!!!
guicaizhou 2011-06-22
  • 打赏
  • 举报
回复
楼主好强大啊
raphaelcheung 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 righthook8 的回复:]

另外不是我说些打击你的话,你做的那些东西好看是好看,但是可能你没感觉到那些都是一些很初级的基本界面元素,MFC程序员只要会自绘和贴图,一两下就能轻松改变MFC原来的风格,而且效果不一定是3D呀什么的,只要界面用户喜欢就行了(你的界面也很粗糙,不够精制,有待改进哟),高级的元素典型的像曲线绘制,MFC里的LISTCTRL呀,这些才是在平时最想改可又不太好弄的东西,像那些BUTTON,COMMBOB……
[/Quote]

+1
虽然说的很直接, 但确实在理
chenchenyangll 2011-06-21
  • 打赏
  • 举报
回复
技术贴必须支持
kiloopt 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 tomsoft 的回复:]

正在研究直接使用FlashPlayer(类似ScaleForm),已经小有结果 ---- 但不能和ScaleForm相比了。LZ为什么不从这点出发呢?
[/Quote]

scaleform我也不敢比啊,呵呵
zhang422173651 2011-06-21
  • 打赏
  • 举报
回复
崇拜.....界面很漂亮
kiloopt 2011-06-21
  • 打赏
  • 举报
回复
回:righthook8,谢谢你的打击,呵呵,现在界面库还处于起步阶段,控件的支持当然没有MFC那么多,不过可以肯定的是,这个界面库的确是纯C++的,没有用到任何wnidows的消息循环之类的,这些界面库都自己做了,所以是跟mfc,windows是无关的,可以放到LINUX上。就像你说的,的确MFC只要贴图好看了,界面也可以好看,但这个就属于个人看法了,有的人就觉得贴个图不好看,非要加个3D效果才好看,就像我,呵呵
loucai 2011-06-21
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
junjun1984 2011-06-21
  • 打赏
  • 举报
回复
icdpub 2011-06-21
  • 打赏
  • 举报
回复
righthook8 2011-06-21
  • 打赏
  • 举报
回复
另外不是我说些打击你的话,你做的那些东西好看是好看,但是可能你没感觉到那些都是一些很初级的基本界面元素,MFC程序员只要会自绘和贴图,一两下就能轻松改变MFC原来的风格,而且效果不一定是3D呀什么的,只要界面用户喜欢就行了(你的界面也很粗糙,不够精制,有待改进哟),高级的元素典型的像曲线绘制,MFC里的LISTCTRL呀,这些才是在平时最想改可又不太好弄的东西,像那些BUTTON,COMMBOBOX,EDIT,CHECKBOX,进度条,其实做起来对一个一直搞界面的人来说真的都还算是简单的了,,欢迎拍砖,,
打酱油 2011-06-21
  • 打赏
  • 举报
回复
支持楼主~~~
月影 2011-06-21
  • 打赏
  • 举报
回复
崇拜(回复内容太短了!)
righthook8 2011-06-21
  • 打赏
  • 举报
回复
,,是不是说错了呀,,纯C++我所了解的开发除了标准库里提供了不少的算法(模板,容器,迭代器等)以外,在界面方面支持的几乎木有,如果你是纯C++开发,那做这套东西你肯定还在里面使用了系统API,WINDOWS的系统API和LINUX的系统API(还有另的就不说了)是不一样的洒,消息呀,窗口概念呀,不可能都一样洒,既然使用了API那还谈什么移值,所以估计你是在WINDOWS上用SDK模式做的(不对请LZ指出,我猜的),应该没使用MFC吧,所以还是只能在WINDOWS上用,,
楼上的都研究FLASH了,,,牛X,
加载更多回复(26)

662

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧