CommentCoreLibrary与代码弹幕支持更新

近期发现了一个相对完整很多的社区对于B站代码弹幕的API总结的文档:http://biliscript-syndicate.github.io/ 于是在参考了其中的许多内容,大量AS3文档后,彻底改变了CCL的代码弹幕实现(以确保未来更高的模块化支持)。现在的CCL代码弹幕部分,采取TypeScript编译而成,已经还原了很多很多的新接口,一改以前的自行探索接口。

测试一如既往的在:http://jabbany.github.io/CommentCoreLibrary/demo/scripting/

3D代码弹幕渲染支持

新版的代码弹幕支持库(现名为KagerouEngine,灵感取自另一个还原FlashAS2接口的项目, Smokescreen)是从底部的DisplayObject实现的一层一层的层叠关系,这样可以快速的增加对新的元件的支持,同时,很多基础的功能(如X,Y坐标,对于整个对象应用3D/2D变幻等等就不再需要针对不同的元件重新实现了,只要对于同一个元件实现,所有的子类都可以轻松支持)。

同时新版(连续考验线代的基础知识的情况下)增加了对 Matrix,Matrix3D,Vector3D等3D效果基础的支持。如上图就可以看出。在前些版本和此版本上,支持Graphics绘图的元件只有Shape(图形)同时后端是采取了SVG为支持的(也就是通过DOM操作实现绘图)。这个策略的优点在于支持的操作非常广泛,而且很相似于Flash播放器本身提供的API,所以实现轻松且还原度相对高很多。但是缺点是由于是DOM操作进行的动画,难以逾越 20fps的低速渲染(虽然说20fps是后台默认对于enterFrame的模拟)。未来的设想是增加对canvas作为支撑模块的Graphics类,这个类则会支持快速绘图和高帧率(限制变成了Worker通讯API)的渲染。

当然了,canvas带来的缺点是支持的功能就少很多了,如filter等就不能很有效的支持。所以说API上也允许各位自由选择,由SVG作为基础的Shape类,以及由canvas作为基础支持的Sprite类。

还有在新版下对于所有的Comment* 类元件,都采取了 MotionManager和Tween进行调控,这样一是更加好的还原了B站的API,二是大量重复的代码就被缩编了,还能由统一的API实现进行动作控制,解决了前些版本的API杂乱每个元件自己控制自己的不便维护的局面。

不过一个小缺点是,由于现在改成由TypeScript编译,所以代码量有所增大,Worker的载入速度变慢了一些。未来发行时得考虑Minify问题了。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注