百度文库技术浅析

     最近上网总是有人问我百度文库技术或者是flex paper技术。呵呵。其实这个东西没有想的那么难。就百度文库来说,可以证明无论是adobe的 flash paper还是开源 的flash2print都没有做到那么智能。为什么说智能呢?你分析下你ie里的百度文库里缓存的 swf 文件 。会发现每个swf文件都是由几个swf拼接而成的,每一个cws就是一个swf文件。而且在文件的开始会有一个{"totalPage":"210","fromPage":"  1","toPage":"  6"}字段。这个可以当成Json也可以理解成AS3的对象。当然要想使用它,首先你需要对他进行序列化。 
totalPage  是说本文章的总页数。
fromPage  是从多少页来的。
toPage    是要到多少页去。
当然我们没有能力自己 开发 那样一个软件,那么就 使用 开源的flash2Print请求的时候要考虑到用户的体验所以在服务端生成swf文件的时候,一般都会选择拼页来实现。
那么请求第一页的时候,服务端发过来的 数据 是这样的,1-6页,为什么是1-6页呢,因为万恶的中国的带宽。呵呵。那么第二页的数据就是2-7页。
那么对应的请求:

Page  id                 页码

   1                      1-6
   2                      2-7
   .                       .
   .                       .
   10                     6-15
那么这是一个非常简单的规律,因为要考虑用户的跳页所以我们要去用户发送页码的前四页和后五页,这么做完全是为了是用户能更好的去体验并且减少服务端的压力。
那么后台调用并发送这些数据,我们在前端就 好办了。哈哈,写一个 播放器 就可以了那么首先我们要考虑一个问题就是, loader对就是loader,不能用常规的loader,因为返回的的是2进制文件,所以我们不能用display包里的 Loader 去解析了.因为他不是正常的swf,原因是这个2进制文件的开始还加了一个自定义对象需要我们去解析呢.
那么请问先生?你说不能用Loader对像,那你用什么呢?URLStream?URLLoader?,随你所好,用什么都行。URLLoader最简单了。哈哈。你可以用。关于这些加2进制的方法其实也就是相当于把数据 进行提炼,然后让AVM认识你,这样就可以播放了。不过我记得那时候我做的时候写的非常愚蠢。哈哈。也没有怎么弄明白就提笔就写,结果效率大打折扣。 源码<

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值