锁定老帖子 主题:AJSPlayer的开发暂停
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-10-01
前段时间,用4.5尝试着做了一款弹幕播放器,基本功能是已经实现了,下面是演示地址: 其实,这个项目原来的计划并不只是单纯的弹幕播放器而已。最初的设想是插件结构模式来完成该项目。设计足够强大的接口,提供给外部JS来执行,让高级用户(技术宅)实现外部算法,从而实现各种高级弹幕效果的插件,使普通用户也能直接复用。 于是,我开始思考新的插件结构。最终想出来的解决方案是——我设计一个接口类IPlugin,并有一个实现PluginImpl,这个PluginImpl同时继承于Sprite(因为AS3要调用外部swf方法,那这个swf则必须是Sprite的子类),他的所有实现方法都是弹幕播放器所暴露的接口,最终将PluginImpl做成一个SWC,提供给高级用户来编辑弹幕播放器的高级弹幕的插件。然后将编译之后生成的swf上传并存储在服务端,而弹幕播放器在每次运行的时候,则会去主动调用普通用户选择安装的那些插件,提供给播放器来执行外部swf文件,实现AS3的插件结构模式。 本来这一方案是可行的,可惜这种方案的耦合性太强,会使那些高级用户编辑插件时觉得反感,从而,这项目也就失去了它的意义。 另外还有一个问题,就是关于项目体积的这一因素。由于我采用的FLEX来开发,所以使用到了SDK的freemarker类库,并且,我希望每个弹幕效果都继承于Animate这一父类,而插件要求主类必须继承于Sprite类,所以常规的FLEX项目是不行的,则必须是AS3项目,而AS3项目的SDK没有freemarker库,就不能使用Animate类,我则必须提供包含了freemarker类库的SWC,这个时候,如若所有的插件都使用了这个类库,那体积则会相当庞大。本来RSL(运行时共享库)可以解决这一问题,可是一旦SWC中包含了其他自定义类(比如上面提到的PluginImpl),就没办法使用RSL,体积怎么也减不下来…… 所以,这个项目不得不暂停,我也将我的源码开放出来,希望大家帮忙看看,提提意见,指教一二,帮助我改进。同时,如果对该项目有兴趣的童鞋、前辈,也可以通过下面联系我。 下面是源代码(有点乱啊,倒入后需要再编译一次): 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2011 次