2009-08-18 3 views
1

У меня есть приложение XULRunner, которое я хочу иметь 2d-графику в HTML-элементе. Я хотел бы иметь возможность перекрасить эту графику при изменении размера окна. Раскладка выглядит примерно так:Гибкий холст в XUL

<box flex="1" id="canvas-box"> 
<html:canvas id="canvas" flex="1"> 

</html:canvas> 
</box> 

Прежде всего «ширина» и «высота» свойства элемента холста не отражают его фактический размер на экране. Это приводит к тому, что штрихи вытягиваются странно, так как 1 единица в направлении х заканчивается в 1 направлении в направлении y. Во-вторых, я не могу запустить событие onresize, независимо от того, помещаю ли я его на холст или на соседний ящик.

Учебное пособие XUL предупреждает о том, что при использовании HTML-элементов внутри вашего приложения XUL возникают макеты, но в этом случае у меня нет выбора, потому что мне нужна 2-я графика. Любые указатели?

EDIT Пока я собираюсь использовать SVG вместо элемента холста. Я нахожусь на предварительных этапах тестирования, но по крайней мере у него нет странных «растягивающих» проблем, которые имели холст.

ответ

0

Не могли бы вы просто поместить HTML-фрейм/iframe в XUL и разместить там холст?

+0

Ну, я не верю в это, потому что, похоже, он не масштабируется должным образом, когда я это делаю. По крайней мере, решение SVG работает нормально. – wxs

0

Я думал, что onresize работает только на окне <>, вы можете изменить размер холста и перекрасить его оттуда.