我有一个 XULRunner 应用程序,我想在 HTML 元素中显示 2d 图形。我希望能够在窗口调整大小时重新绘制这些图形。布局看起来像这样:
<box flex="1" id="canvas-box">
<html:canvas id="canvas" flex="1">
</html:canvas>
</box>
首先,画布元素的“宽度”和“高度”属性并不能反映其在屏幕上的实际大小。这会导致笔画奇怪地拉伸出来,因为 x 方向上的 1 个单位最终与 y 方向上的 1 个单位不同。其次,无论我是把它放在画布上还是放在周围的盒子上,我都无法触发 onresize 事件。
XUL 教程确实警告说,当您在 XUL 应用程序中使用 HTML 元素时会出现布局异常,但在这种情况下,我别无选择,因为我需要 2d 图形。任何指针?
编辑现在我将使用 SVG 代替 canvas 元素。我正处于尝试的初步阶段,但至少它似乎没有画布所遇到的奇怪的“拉伸”问题。