HTML5 Canvas在完成渲染时会发出事件吗?

时间:2014-12-30 14:17:14

标签: javascript html5 canvas

我现在正在使用移动浏览器problem,尝试使用PDF.JS在浏览器中呈现PDF文件。它工作正常,但我需要在PDF文件上渲染一个渐变来隐藏一些内容,我不知道如何弄清楚画布什么时候渲染PDF,所以我设置了3秒钟-out然后运行我的“回调”。它不漂亮,我认为它可能是上述问题的原因,因为:

  • 问题根本不会发生在桌面浏览器上。
  • 如果我不渲染渐变,则移动设备上不会出现此问题。

所以我的结论是,出于一些奇怪的原因,如果在PDF完成渲染之前渲染渐变,画布会“吓坏了”。

所以,我需要在查看器的渲染操作中附加一个回调,实际上,但是我非常怀疑这个功能存在于这个记录不完整(但大多数工作很好)的库中。

HTML5 Canvas在完成渲染时是否会发出事件?如果没有,是否有任何解决方案可以让我确保画布的渲染完成?

2 个答案:

答案 0 :(得分:1)

不,它没有。
画布或它的上下文并不知道它们实际上正在发生什么(/正在被绘制)。

您必须"将回调附加到观看者的渲染操作。"

答案 1 :(得分:0)

仅供参考,事实证明我错了,(我认为这是最近的变化?)PDF JS库由Mozilla本地托管和集成。很自然地,他们在API之上,具有几乎所有功能(尽管文档“格式”对于经验丰富的软件工程师来说更多,代码形式更多),并且为页面的渲染操作完成附加事件处理程序的方法是在这里得到启示:

https://github.com/mozilla/pdf.js/blob/master/web/pdf_viewer.js#L225

并在此处访问:

https://github.com/mozilla/pdf.js/blob/master/web/viewer.js#L1733

触发了一个事件pagerendered