专注于前端开发, 追求更好的用户体验, 更好的开发体验 [长沙前端QQ群:234746733]

as3

  • Kplayer 1.2.2 发布

    / 分类: 实践 / 27 Comments

    Kplayer简介:一款MP3播放器,支持单曲、列表播放,自动记录播放位置,刷新页面可接着上次位置继续播放。代码用as3制作,UI部分全部是用代码画出来的,没有用到一点flash导出的素材。界面仿照Chrome的HTML5播放器界面,差不多类似HTML5的audio标签。还可以配合HTML5标签一起使用。

    功能列表:

    • 1、自动记录播放歌曲的位置,即使刷新页面也会接着继续播放(并且,比如在firefox下播放,然后关闭页面,再用IE或其他浏览器打开,还会接着播放,这个记录是跨浏览器的)。
    • 2、不仅支持播放单曲,还支持播放json或xml格式的歌曲列表。
    • 3、可定义json/xml列表的路径。
    • 4、支持单曲循环、歌曲列表循环播放。
    • 5、可自定义从歌曲列表的第几首开始播放。
    • 6、歌曲加载错误会自动切换下一首,xml/json格式错误、加载错误会提示。
    • 7、可自定义默认的播放音量,可拖动、点击、滚轮控制音量。
    • 8、歌曲播放进度(在已加载的范围内)可拖动或点击控制。
    • 9、可显示歌手、歌曲名称。
    • 10、键盘控制:暂停、继续播放、上一首、下一首、快进、快退、音量调节。
    • 类似:暂停、继续播放、切换静音、加载进度条这些普遍的就不详细列出了。

    update log:

    2011-07-26: 更新版本号为1.2.2
    fix:修复储存播放信息的判断,之前的不严格会导致记录冲突
    fix:如果歌曲列表的歌曲地址全部失效(播放器没有1首歌可以正常播放),提示加载歌曲失败,并停止播放和记录。
    fix:增加一个极少数情况发生的歌曲加载失败的判断
    fix:一些操作如果不影响记录结果,就暂停自动记录,减少资源占用。
    add:新增参数:record,为0就不自动记录播放位置
    是否开启自动记录就看个人需求吧,我测试同时播放3个(每个都自动记录),内存变化不大,cpu使用和那些视频门户播放1个视频时差不多,此时应该算很正常了。所以如果一个页插入多个播放器一起播放(每个都开启自动记录),就控制在3-4个左右吧,这样应该没啥问题。Ps:同页面多个播放器千万不可把name参数的值都设置成一样的,例子可看下面参数列表的说明。
    add:鼠标移到按钮上显示提示按钮功能
    add:焦点在播放器上时,Tab键显示快捷键提示
    Note:不使用Tab键切换按钮焦点的原因:
    1、flash里的元素获得焦点后,默认空格、回车都会触发焦点的事件,所以会与播放器产生冲突:
    静音按钮获得焦点时,按空格即触发了静音按钮,也触发了暂停/播放按钮;音量滑块获得焦点,焦点会跳到其他按钮(因为按上下左右键会触发改变焦点)。
    2、如果是flex做的表单,tab切换是有必要的,就播放器来说tab切换焦点来控制意义不大(已经做了键盘绑定和鼠标提示)。
    3、为了满足用tab切换的同学,tab被改成了快捷键的帮助。采用这个折中的办法,我想是最好的解决方案。如果要tab让按钮获得焦点并高亮,不仅要对每个按钮加上focus事件的侦听,还要解决焦点冲突,增加的代码太多了。

    2011-07-22: 更新版本号为1.2.1
    加入键盘控制快进、快退,代码部分发现了几处可以优化的地方,优化了下。

    2011-07-20: 更新版本号为1.2
    fix: 修复当拖动音量到0,再点击静音按钮时的切换(改为初始音量)
    fix: 播放上一首没加载完,切换下一首有时出现的拖动问题
    fix: 重载页面时,播放进度条位置和播放时间没有对应记录的播放位置
    add: 键盘控制: 暂停(空格键)、继续播放(空格键)、上一首(ctrl+Left)、下一首(ctrl+Right)、快进(Right)、快退(Left)、音量调节(Up,Down)

    2011-06-22: 因为之前做了个基础版了,这次做了些重构,加了些功能,版本定位1.1吧,功能应该足够用了。

    演示:(播放歌曲并刷新页面试试。。)

    下载:http://pan.baidu.com/share/link?shareid=284648&uk=3338835672
    1.2.2演示:https://xhl.me/demo/KPlayer/

    查看全文 »

  • as3 unescape 转义后的unicode中文

    / 分类: 开发 / No Comments

    比如在php里,json_encode后的中文就被转成前面是反斜线开头的unicode形式,比如“汉字”->\u6c49\u5b57。
    在as3里unescape解码的是%u6c49%u5b57这样的百分号开头形式。
    所以需要替换json字符串里面的\u->%u。

    PHP里面:
    $str = preg_replace("/\\\\u/u", '%u', $str);
    而AS3里面:
    str = unescape(str.replace(/\\\u/g, '%u'));