1

我有一个 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 元素。我正处于尝试的初步阶段,但至少它似乎没有画布所遇到的奇怪的“拉伸”问题。

4

2 回答 2

0

我认为 onresize 仅适用于 <window>,您可以调整画布大小并从那里重新绘制。

于 2009-10-08T05:45:18.820 回答
0

难道你不能在 XUL 中放一个 HTML 框架/iframe 并将画布放在那里吗?

于 2009-08-25T08:45:51.557 回答