Si necesita trabajar en diferentes capas en un lienzo HTML5, ¿cuál es la mejor manera de hacerlo? Veo que algunas personas deciden apilar una cantidad de lienzos uno encima del otro usando la posición: absoluta. Es esta la mejor manera?¿La mejor manera de aplicar capas en HTML5 Canvas?
Respuesta
Personalmente, no apilaría lienzos uno encima del otro. Un lienzo es en realidad solo un mapa de bits que muestra todos los píxeles que necesita, por lo que solo debería necesitar uno para la mayoría de los casos.
Sugeriría usar una biblioteca para ayudarlo a administrar diferentes objetos. Descubrí que el EaselJS de Grant Skinner es muy fácil de usar.
Esta biblioteca le permite agrupar objetos fácilmente y agregarlos al lienzo, también hace que sea trivial agregar detectores de mouse para capturar clics en objetos, etc. que es algo que tendría que escribir un montón de código al usar lienzo sin una biblioteca.
También hay documentación y ejemplos en EaselJS.
EDIT:
Aquí es un extracto de los documentos relativos a la container
utilizado para objetos de grupo.
Un contenedor es una lista de pantallas anidables que le permite trabajar con elementos de visualización compuestos. Por ejemplo, podría agrupar mapas de bits de brazo, pierna, torso y cabeza en un Contenedor de persona, y transformarlos como un grupo, sin dejar de poder mover las partes individuales entre sí. Los hijos de contenedores tienen sus propiedades de transformación y alfa concatenadas con su contenedor principal. Por ejemplo, una forma con x = 100 y alfa = 0.5, colocada en un contenedor con x = 50 y alfa = 0.7 se representará en el lienzo en x = 150 y alfa = 0,35. Los contenedores tienen algunos gastos generales, por lo que generalmente no debe crear un contenedor para contener a un solo hijo.
- 1. línea clara en HTML5 Canvas
- 2. HTML5 Canvas: zoom
- 3. Acelerar HTML5 Canvas píxel renderizado
- 4. ¿Qué es mejor y por qué? RaphaelJS o HTML5 Canvas?
- 5. HTML5 canvas hittesting
- 6. Canvas HTML5: diferentes trazos
- 7. Dart HTML5 Canvas Library?
- 8. canvas HTML5 "restablecer" fillStyle
- 9. HTML5 - canvas createLinearGradient vertical
- 10. HTML5 Canvas Vector Graphics?
- 11. Strange HTML5 Canvas drawComportamiento de la imagen
- 12. canvas de HTML5 marco avanzado
- 13. Anti-alias de canvas HTML5?
- 14. Diagramas en SVG frente a HTML5 Canvas
- 15. Composición de Canvas HTML5 (fuente-en)
- 16. Datos de origen cruzado en canvas HTML5
- 17. Representación de PDF en HTML5 Canvas
- 18. apoyo IE9 para la etiqueta HTML5 Canvas
- 19. animación en espera con canvas de HTML5
- 20. GIF animado en canvas de HTML5
- 21. html5 - elemento de lienzo - Varias capas
- 22. Mezcla HTML5 Canvas y Python
- 23. Canvas y HTML5: navegadores compatibles?
- 24. Sprites suaves para caminar en HTML5 Canvas
- 25. HTML5 Canvas Mouse Wheel Evento
- 26. Crear mediante programación HTML5 Canvas
- 27. ¿Cuál es la mejor manera de manejar buffers grandes en una pila de protocolos en capas?
- 28. HTML5 Canvas drawing líneas multicolores
- 29. HTML5 Canvas y Anti-aliasing
- 30. La mejor manera de reproducir sonido con HTML5 y Javascript
Gran idea, he estado utilizando EaselJS pero no estaba al tanto del término agrupación. Lo investigaré aún más gracias –