Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML5]Nałożenie obrazków na obrazek
Forum PHP.pl > Forum > Po stronie przeglądarki
olszam
Mam pytanko, chciałbym w canvas nałożyć parę obrazków na tło, normlanie najpierw tło a potem na niego jakieś inne mniejsze obrazki.
  1. $('button').on('click',function(){
  2. var c = document.getElementById('myCanvas');
  3. var ctx = c.getContext("2d");
  4. var img = new Image();
  5. img.src = $(location).attr('href')+'/img/'+$('#frames option:selected').val();
  6. var img1 = new Image();
  7. img1.src = $(location).attr('href')+'/img/'+$('#merc1 option:selected').val();
  8. var img2 = new Image();
  9. img2.src = $(location).attr('href')+'/img/'+$('#merc2 option:selected').val();
  10. var img3 = new Image();
  11. img3.src = $(location).attr('href')+'/img/'+$('#merc3 option:selected').val();
  12. var img4 = new Image();
  13. img4.src = $(location).attr('href')+'/img/'+$('#merc4 option:selected').val();
  14. var img5 = new Image();
  15. img5.src = $(location).attr('href')+'/img/'+$('#merc5 option:selected').val();
  16. var img6 = new Image();
  17. img6.src = $(location).attr('href')+'/img/'+$('#merc6 option:selected').val();
  18. var img7 = new Image();
  19. img7.src = $(location).attr('href')+'/img/'+$('#merc7 option:selected').val();
  20. var img8 = new Image();
  21. img8.src = $(location).attr('href')+'/img/'+$('#merc8 option:selected').val();
  22. var img9 = new Image();
  23. img9.src = $(location).attr('href')+'/img/'+$('#merc9 option:selected').val();
  24.  
  25. var xyframe = [
  26. [27,3,80,97],
  27. [112,3,80,97],
  28. [201,3,80,97],
  29. [27,128,80,97],
  30. [112,128,80,97],
  31. [201,128,80,97],
  32. [27,252,80,97],
  33. [112,252,80,97],
  34. [201,252,80,97],
  35. ];
  36. img.onload = function(){
  37. ctx.drawImage(img, 0, 0,307,382);
  38. }
  39. img1.onload = function(){
  40. ctx.drawImage(img1,xyframe[0][0],xyframe[0][1],xyframe[0][2],xyframe[0][3]);
  41. }
  42. img2.onload = function(){
  43. ctx.drawImage(img2,xyframe[1][0],xyframe[1][1],xyframe[1][2],xyframe[1][3]);
  44. }
  45. img3.onload = function(){
  46. ctx.drawImage(img3,xyframe[2][0],xyframe[2][1],xyframe[2][2],xyframe[2][3]);
  47. }
  48. img4.onload = function(){
  49. ctx.drawImage(img4,xyframe[3][0],xyframe[3][1],xyframe[3][2],xyframe[3][3]);
  50. }
  51. img5.onload = function(){
  52. ctx.drawImage(img5,xyframe[4][0],xyframe[4][1],xyframe[4][2],xyframe[4][3]);
  53. }
  54. img6.onload = function(){
  55. ctx.drawImage(img6,xyframe[5][0],xyframe[5][1],xyframe[5][2],xyframe[5][3]);
  56. }
  57. img7.onload = function(){
  58. ctx.drawImage(img7,xyframe[6][0],xyframe[6][1],xyframe[6][2],xyframe[6][3]);
  59. }
  60. img8.onload = function(){
  61. ctx.drawImage(img8,xyframe[7][0],xyframe[7][1],xyframe[7][2],xyframe[7][3]);
  62. }
  63. img9.onload = function(){
  64. ctx.drawImage(img9,xyframe[8][0],xyframe[8][1],xyframe[8][2],xyframe[8][3]);
  65. }
  66. });


Ogólnie jest ok gdy tło będzie miało w odpowiednich miejscach przezroczystość wyciętą, ale jak dam jakiegoś jpga to już mi zakryje wszystko. Próbowałem w odpowiedniej kolejności poprzestawiać kod z tłem ale nadal nie wychodzi.
trueblue
Najpierw piszesz, że chcesz nałożyć tło, a potem obrazki, a pod kodem piszesz, że kiedy tło będzie jpgiem to przykryje (jak było na wierzchu - nad obrazkami).

Jakie jest Twoje pytanie?
olszam
Jak dokładnie mam określić pytanie to tak:
Co zrobić by najpierw wygenerowało tło a potem nałożyć na niego obrazki?
trueblue
Najpierw nałożyć tło, a potem obrazki...
olszam
to akurat działa gdy zrobię dla rysowania tła inne zdarzenie np. inny button do niego, a jeśli ma być w jednym to tylko gdy wcisnę settimeout to co jest w img od 1 do 9 (bez zwykłego img bo to jest tło), inaczej nie chce mi pójść.
trueblue
Trudno mi Ciebie zrozumieć, szczególnie ostatnią wypowiedź.
Nie wiem czy o to chodzi, ale wsadź ładowanie obrazków do funkcji onload dla tła (po drawImage).
olszam
a dobra czaje, bo wcześniej tak próbowałem to wcale nie chciało mi działać i za każdym razem dawałem onload dla każdego obrazka, teraz jest git smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.