前段时间已经对于内嵌Web浏览器内核技术来制作Game内的UI做了一些介绍。
         而现在有一种趋势是利用Flash来实现游戏内的UI,有不少公司和个人开源开发者已在这方面有很大的进展。相信FlashUI很快会逐渐流行普及开来。利用Flash技术可以很方便的在游戏内播放视频,对于游戏内嵌广告发布,玩家互动内容表现都是很的一种表现形式。而对于开发方式方面,由于Flash可以支持动态的UI表现,这样美术人员就可以独立的进行UI设计而不需要程序员的过多参与了。而且由于UI采用Flash格式,这样来UI的设计工具也可以直接使用Macromedia的FlashMX了。
         FlashUI按照嵌入游戏的方式可分为两个分支,一种就是按照Adobe的FlashFormat来实现自己的build in解析和渲染器;另外一种比较偷懒,就是封装Flash的OCX控件来引入到游戏内部。

分支一:

采用第一种方式实现FlashUI的最有名的算是Scaleform了,其推出的GFx套件利用硬件加速来高效表现Flash的矢量图形,并且支持ActionScript2.0,这样很多Flash的Mini-Game都可以不加修改的嵌入到MMO中了,类似巨人刚推出时的巨型休闲MMO的概念有了Flash技术的支持应该很容易实现了,再也不需要分拆MMO开发人员去制作游戏内的Mini-Game。而其设计专门为游戏量身定做,对于跨平台(Window,linux,PSP,PS2...),字体以及Scale9Grid(按照9格来拼接窗体,输入框等需要自由缩放大小的UI)的支持都使得游戏的UI开发更加便捷。凭借这些优势使得Scaleform不断被集成到主流的引擎中(Unreal3,Gamebyro,Bigworld,Crytek)。不过其对于东亚文字的输入只列出了数种,简体中文支持微软拼音、ABC、全拼、双拼。而对于中国这样的游戏环境来说这远远是不够的,玩家使用的输入法五花八门,而且有的输入法设计时就是不符合IME的规范的,因此要在游戏内接管IME来实现自绘候选字列表几乎是不可能的,还是放弃这个念头先。
        ScaleformGFX功能不错,但是授权费用上也是相当的不错(听天下贰的同事说还是针对每个游戏title的授权),估计很少有公司会单独购买了,这方面的成本节中国公司还是精打细算的。
        没钱的主还是来琢磨一下开源的免费东东吧。Scaleform GFx的基本技术和设计思想来源于一个称之为GameSwf的开源库。GameSwf的设计目标就是希望将Flash引入到3D应用中来实现GUI的功能。也有人已经将其集成到Torque引擎中了,不过由于其对于Flash和AS的支持还不是很完善,也限制了他的发展。

分支二:

相比第一种方式来说,采用引入OCX控件的方式会丧失一些主动权,渲染方式其实和将Web渲染到游戏内一样,都是由这些控件将图形先输出到HDC上,然后再将其拷贝到游戏内的纹理,效率上会比第一种方式差。不过好处也是大大的,不用再担心Flash版本的升级,这个全部由Flash的OCX控件封装好了。

OGRE平台上已经有这样的FlashGUI组件了,叫做Hikari,其实现方式以及各种特性请看其官网Wiki。

能够处理好鼠标键盘的输入以及绑定ActionScript与游戏引擎的交互问题,基本上这样的GUI就可以正常运转起来了。

关注Game内嵌Flash UI相关推荐

  1. 干货 | 携程APP Native/RN内嵌Flutter UI混合开发实践和探索

    作者简介 Deway,携程资深工程师,iOS客户端开发,热衷于大前端和动态化技术: Frank,携程高级工程师,关注移动端热门技术,安卓客户端开发. 前言 随着各种多端技术的蓬勃发展,如今的移动端和前 ...

  2. Java革新大提速 Chrome 54终结YouTube的Flash内嵌技术

    JavaOne 2016 IBM主题演讲 – Java革新大提速 在今年的JavaOne社区主题演讲中,IBM公司Java领域CTO兼杰出工程师John Duimovich介绍了企业.技术,甚至用户正 ...

  3. Flash Player小程序(内嵌窗口)在Chrome、Firefox、Edge、360极速/安全、IE 8、Oprea 36、QQ、搜狗等浏览器上的应用

    Flash Player小程序(内嵌窗口):基于跨浏览器的小程序系统-PluginOK(牛插)中间件( https://github.com/wangzuohuai/WebRunLocal )开发,底 ...

  4. element UI 组件封装--搜索表单(含插槽和内嵌组件)

    组件封装–搜索表单 searchForm.vue 可根据需要,参考姓名和工作自行增加更多常用的默认搜索项 <template><div style="padding: 30 ...

  5. Qt实现 内嵌CEF3制作浏览器(尾篇)

    在上一篇 Qt实现 CEF制作浏览器(首篇) 中,编译了cefsimple,打开了浏览器,不过该浏览器是demo做例子用的,但是我们的目的是为了嵌入qt窗口中. 本篇将介绍如何将CEF生成的浏览器嵌入 ...

  6. React Native 内嵌h5页面(基于vue)的实现方案调研

    React Native 是目前流行的跨平台移动应用开发框架之一.通过采用不同的方法进行混合移动应用开发,它不会生成原生 UI 组件,而是基于 React,React Native 是一个用于构建基于 ...

  7. 给妹子讲python-S01E19解析Python内嵌作用域与函数闭包

    欢迎关注公众号:python数据科学家 [要点抢先看] 1.python中独特的嵌套函数 2.嵌套作用域与闭包现象 3.nonlocal关键字与内嵌作用域变量修改 前情回顾,上一节我们介绍了变量的LE ...

  8. STM32 电机教程 15 - BLDC 速度环内嵌电流环

    前言 无刷直流 (Brushless Direct Current, BLDC)电机是一种正快速普及的电机类型,它可在家用电器.汽车.航空航天.消费品.医疗.工业自动化设备和仪器等行业中使用.正如名称 ...

  9. 在浏览器中内嵌word_关于项目浏览器内核的选取解读

    故事的开始 那天我刚刚开发好的桌面壁纸发现webkit浏览器内核虽然小 但是网页支持非常差于是我走访了一圈 整理了一堆浏览器内核 Cef 全民Chromium Embedded Framework ( ...

最新文章

  1. adf的主要功能之一是_浅析高性能纤维纸基功能材料
  2. dos2unix install on mac_mac2019新品唇釉来啦!MAC有色唇油试色
  3. 如何确定SharePoint 2007的一次增量爬网会处理多少条更新呢?
  4. 【转】Spring mvc 统一异常处理和静态文件的配置
  5. mysql没法安装_mysql没法使用、没法启动服务的解决方法
  6. Shiro 编码/加密
  7. Istio Pilot 源码分析(二)
  8. 解决小程序图片在开发者工具能显示,测试时真机不显示问题
  9. sql server 以10分钟分组 统计人数
  10. tl r402路由器设置_记一次TP-LINK路由器问题排查
  11. html 自动生产,【SQL】用Sql Server自动生产html格式的数据字典
  12. Temp文件夹缺少network service权限,webservice能访问,但是不能调用
  13. mysql 索引越界_mysql隐式转换造成索引失效的事故总结
  14. 转Spring+Hibernate+EHcache配置(二)
  15. 【Java入门提高篇】Day26 Java容器类详解(八)HashSet源码分析
  16. 正斜杠“/”与反斜杠”\”
  17. .NET项目工程生成一份项目帮助文档chm--Sandcastle工具
  18. 【Python+Stata】豪斯曼检验:固定效应or随机效应?
  19. 程序员年龄增大后的职业出路是什么?
  20. Signal and SIGIO

热门文章

  1. Proteus仿真:C51中断函数实例
  2. APE与FLAC格式对比
  3. python 大小写判断,python如何判断字符是否大写
  4. php早午晚问候语,美好的午安问候语短信汇总33条
  5. 程序员卷起来,35岁怎么惨,但怎么还这么多钱?
  6. 华为远程模拟器鸿蒙,某游戏在华为鸿蒙运行,被识别成使用安卓模拟器
  7. 爱情分析-----失恋33天
  8. matlab st dt代表什么意思,kk是什么意思代表什么_吴白的dt和kk俱乐部的名称含义_我爱历史网...
  9. 小程序自定义组件的methods的调用
  10. lol服务器水平信息,网一在整个服务器整体水平排第几