2012-05-25 13 views

Respuesta

4

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.

+0

Gran idea, he estado utilizando EaselJS pero no estaba al tanto del término agrupación. Lo investigaré aún más gracias –