CesiumJS 加载动图思路

思路一:

         1.使用相应格式的动图解析库解析为每帧图像;

         2.设置定时器或使用解析库中提供的方法(如apng-js中的play方法)实现每帧图像的更新;

         3.通过CallbackProperty动态更新Billboard的image属性;

      缺点:解析库少;apng-js解析的每帧图像可能大小不同,导致异常的动态效果;

思路二:

         1. 添加两个canvas绘制动图

         2.通过CallbackProperty动态更新Billboard的image属性,从两个canvas之间不断切换;

       缺点:动图绘制在canvas上的长宽要额外调整;

另辟蹊径:使用单帧序列图片模拟动图效果。定时器+CallbackProperty。优点是可以手动调节每帧图像的间隔时间,图像大小也通过Billboard的width和height直接控制。缺点是:不是直接对动图本身操作,而是以静图模拟动图。

 

    
    //预缓存图片
    const res_urls = await _load_png_urls(urls);
    //设置定时器
    const interval = 100 //ms
    let i = 0;
    const timer = self.setInterval(() => {
      ++i;
      i = i % res_urls.length;
    },interval || 100);
    //设置图像
    billboard.image = new CallbackProperty(function () {
      return res_urls[i];
    }, false);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值