Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript и canvas в различных браузерах. / 2 сообщений из 2, страница 1 из 1
08.08.2008, 07:21
    #35477552
crazybars
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и canvas в различных браузерах.
Здравствуйте. Проблема в следующем. Я рисую на canvas изображение. Для того чтобы работало в IE делаю следующее:
Код: plaintext
<!--[if IE]><script type="text/javascript" src="excanvas.js"></script><![endif]-->
Изображение представляет собой стилизованную половину буквы А. Задача состоит в том чтобы диагональ буквы совпадала с диагональю окна браузера.
Для рисования описал функцию:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
function draw() {
      var resizeCanvas = document.getElementById("fon");
	  var lineFat = document.body.clientWidth/ 6 ;
	  var linePos =  30 ;
	  resizeCanvas.style.width = document.body.clientWidth;
	  resizeCanvas.style.height = document.body.clientHeight;
      resizeCanvas.style.position = 'fixed';
      var canvas = document.getElementById("fon").getContext('2d');
	  var a   = document.body.clientHeight;
	  var b   = document.body.clientWidth;
	  var x   = lineFat;
	  var z   = (linePos*b)/a;
	  var z1  = b*(a- 2 *x-linePos)/a;
      var z2  = b* 0 . 2 *x/a;
	  var arr = [
      [ 0 ,  0 ],// 1 
	  [b,a],// 2 
	  [b-x,a],// 3 
	  [b-x-z,a-linePos],// 4 
	  [ 0 ,a-linePos],// 5 
	  [ 0 ,a-x-linePos],// 6 
	  [z1,a-x-linePos],// 7 
      [z2,x+ 0 . 2 *x],// 8 
	  [ 0 ,x+ 0 . 2 *x],// 9 
      [ 0 , 0 ]// 10 
      ];
      canvas.beginPath();
      for (var i =  0 ; i < arr.length; i++) {
            if (i ==  0 ) canvas.moveTo(arr[i][ 0 ], arr[i][ 1 ]);
            else canvas.lineTo(arr[i][ 0 ], arr[i][ 1 ]);
      }
      canvas.fillStyle = "rgb(236,236,236)";
      canvas.fill();
}

В IE отображается все именно так как надо, но в остальных браузерах (Opera,FF) рисуется только нижний треугольник и видны пиксели. Думаю что проблема с изменением размера Canvas, но не могу понять где именно. Подскажите в чем косяк? (про кривость рук можете не писать, я знаю :)
...
Рейтинг: 0 / 0
08.08.2008, 11:18
    #35478023
The_ShadoW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и canvas в различных браузерах.
Я хоть и не занимался вплотную Canvas'ом (у нас проект его юзает, однако занимаются им другие люди), но точно знаю, что при масштабировании сделано так: старый Canvas сносится, потом создается новый нужного размера, и на него уже рисуется масштабированное изображение.

Видимо это не просто так.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript и canvas в различных браузерах. / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]