本文地址:http://www.cnblogs.com/liaoyu/p/ccl-demo.html

实现基于开源的 CommentCoreLibrary

最近有需求要实现一个简单的评论弹幕实现,通过简单的对 CommentCoreLibrary 的修改,达到下面的效果: 示例地址

html结构

<div class="feng-ccl-panel">
<div class="abp" id="feng-player">
<div id="commentCanvas" class="container"></div>
</div>
</div>

再引入CommentCoreLibrary.js和style.css

js实现

在dom加载完成后, 开始初始化ccl

document.addEventListener('DOMContentLoaded', function(){
var CM = new CommentManager(document.getElementById('commentCanvas'));
CM.init(); // 启动播放弹幕(在未启动状态下弹幕不会移动)
CM.start(); // 开放 CM 对象到全局这样就可以在 console 终端里操控
window.CM = CM; // 弹幕播放
cmtController();
} ,false);

再数据加载完成后,发送弹幕即可

function getCmtDataList() {
var cmtArr = []; // 可以使用jsonp获取服务器的字幕数据
/*$.ajax({
type : 'GET',
url : 'http://192.168.9.67/test.php',
dataType : 'jsonp',
data : {sid : 100},
success : function(data) {
cmtArr = data.dataList; if (cmtArr && cmtArr.length > 0) {
sendMsg(cmtArr);
}
}
});*/ // 测试数据
cmtArr = [
{"text":"大家期待什么新品啊", "bgColor":"#424448", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"会有什么惊喜吗?", "bgColor":"#424448", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"等待中。。", "bgColor":"#23b28b", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"会有什么新产品呢?", "bgColor":"#424448", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"定时执行", "bgColor":"#23b28b", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"1123333446红咖喱的非农房价", "bgColor":"#ec4262", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"测试接口发评论00", "bgColor":"#ec4262", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"测试接口发评论00", "bgColor":"#3dbbc0", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"啊啊啊啊啊啊啊哦哦哦诶IEIE恩家报表出具", "bgColor":"#ec4262", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"的方式的方法反反复复反复反复", "bgColor":"#23b28b", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"}
] sendMsg(cmtArr);
} function sendMsg(cmtArr) { for (var i=0; i<cmtArr.length; i++) {
var cmtItem = cmtArr[i],
iconStr = ''; if (cmtItem.icon && cmtItem.icon.length > 0) {
iconStr = '<span class="icon"><img src="'+ cmtItem.icon +'"></span>';
} // 字幕的节点内容
cmtItem.text = iconStr + cmtItem.text;
cmtItem.mode = 1;
cmtItem.dur = Math.floor(Math.random()*4000 + 4000); CM.send(cmtItem);
}
} function cmtController() {
getCmtDataList(); setTimeout(function(){
cmtController();
}, 5000);
}

基于CommentCoreLibrary简单的弹幕实现的更多相关文章

  1. 基于Bootstrap简单实用的tags标签插件

    http://www.htmleaf.com/jQuery/ jQuery之家 自由分享jQuery.html5和css3的插件库 基于Bootstrap简单实用的tags标签插件

  2. 基于最简单的FFmpeg包封过程:视频和音频分配器启动(demuxer-simple)

    ===================================================== 基于最简单的FFmpeg封装工艺的系列文章上市: 最简单的基于FFmpeg的封装格式处理:视 ...

  3. 基于最简单的FFmpeg采样读取内存读写:存储转

    ===================================================== 基于最简单的FFmpeg样品系列读写内存列表: 最简单的基于FFmpeg的内存读写的样例:内 ...

  4. 基于最简单的FFmpeg的AVDevice抽样(屏幕录制)

    =====================================================基于最简单的FFmpeg的AVDevice样品文章: 最简单的基于FFmpeg的AVDevic ...

  5. 基于最简单的FFmpeg采样读取内存读写:内存玩家

    ===================================================== 基于最简单的FFmpeg样品系列读写内存列表: 最简单的基于FFmpeg的内存读写的样例:内 ...

  6. 基于Jquery 简单实用的弹出提示框

    基于Jquery 简单实用的弹出提示框 引言: 原生的 alert 样子看起来很粗暴,网上也有一大堆相关的插件,但是基本上都是大而全,仅仅几句话可以实现的东西,可能要引入好几十k的文件,所以话了点时间 ...

  7. 基于PHP——简单的WSDL的创建(WSDL篇)

    1.建立WSDL文件      建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下 ...

  8. Python 基于pykafka简单实现KAFKA消费者

    基于pykafka简单实现KAFKA消费者   By: 授客 QQ:1033553122         1.测试环境 python 3.4 zookeeper-3.4.13.tar.gz 下载地址1 ...

  9. JavaScript实现简单的弹幕效果实例分析

    不知大家有没有感受到,弹幕又是另一出好戏!! 不过我个人还是比较排斥看电视的时候被出来的弹幕打扰.今天我们来写一个简单的弹幕.简单到什么程度呢?看下效果: 由图可以看出,我们的呆毛html结构确实是非 ...

随机推荐

  1. SQLserver数据库基础

    1·控制数据库的服务 运行 cmd 在控制面板输入  net  start   MSSQLserver   (启动数据库服务) 在控制面板输入  net  stop   MSSQLserver   ( ...

  2. sql server 查询字符串指定字符出现的次数

    这里提取指定符串"A"在字段中的出现次数SQL为: select len(keyword)-len(replace(keyword, 'A', ' ')) from 表 原理:用r ...

  3. 创建Unity新项目并编译成游戏程序

    注:本人所使用的Unity版本为:Unity5.3.5f1,所使用的VS版本为:Visual.Studio.2013.Ultimate 折腾了快一个月了,终于有时间做自己的啦,哈哈: ) 步骤一:启动 ...

  4. Python快速入门学习笔记(二)

    注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb49318210 ...

  5. I Take It All Back: Using Windows Installer (MSI) Rollback Actions

    Original Link: http://blogs.flexerasoftware.com/installtalk/2011/10/i-take-it-all-back-using-windows ...

  6. 在Windows下基于libx264.a的Qt 4.8.2视频压缩

    1.在用mingw 4.5.2编译x264后,生成libx264.a文件,将libx264.a和x264.h和x264_config.h拷贝到Qt工程中,将mingw/lib/libpthread.a ...

  7. strcpy函数导致release版程序崩溃

    最近在写一个读取模型文件的小程序.很随意的使用了strcpy函数进行char字符数组的拷贝,这个数组是需要传递给PostMessage作为WPARAM的参数.代码部分如下: char pStrCurr ...

  8. linux shell编程学习笔记(一)---通配符,元字符

    linux通配符: 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不 ...

  9. 配置Apache+Mysql+Php

    以下操作均在Debian 6.0 64bit 环境root权限下进行,如果提示权限不足请切换至root用户或者sudo,本人比较喜欢自行安装,因为安装的过程中能最小化安装而且能够知道安装了什么,然后可 ...

  10. mysql---索引及explain的作用

    索引:是一种数据结构,以增加存储开销和减慢DML(增.删.改)操作来提高查询速度. 常见的索引结构:btree索引(myisam,innodb,memory,heap),hash索引(memory,h ...