2010-10-10 12 views
9

necesito marco canvas de HTML5 que debe hacer:canvas de HTML5 marco avanzado

  • sorteo objeto (por ejemplo, un rectángulo)
  • en el evento onmouseover del estilo cambio de objeto de color/de la frontera
  • en tecleo hacer alguna acción js

THX

EDIT: por fin he decidido utilizar raphaeljs (Alterna tivo sería dojo). Este marco es increíble. (No necesita HTML5 canvas y usa SVG)

Respuesta

8

Parece que lo que realmente quieres es una interfaz de gráficos retained mode, donde puedes crear un objeto, obtener eventos del mouse en él, cambiar propiedades en él, moverlo, etc. y haga que el navegador haga frente a la necesidad de volver a dibujar la pantalla. En este caso, sería mejor con SVG en lugar de <canvas>, que como superficie de gráficos immediate mode es realmente una caja llena de píxeles.

+0

Sí, SVG es lo que sería la forma más fácil de seguir. Hasta donde yo sé, no hay bibliotecas de lienzos que admitan el tipo de detección de eventos que desee. –

1

Tome un vistazo a esta pregunta:

What is the current state of the art in HTML canvas JavaScript libraries and frameworks?

Fabric.js es impresionante y mightly pastel es también una biblioteca decente.

+0

Thx, ya he probado Fabric.js. Es increíble, pero los chicos no resuelven problemas de animación y eventos (al menos no como una funcionalidad común). – ChRapO

+0

¿Has probado CAKE? – Castrohenge

+2

No, hay un problema de que el proyecto es la muerte. Pero la funcionalidad actual es buena. – ChRapO

0

bHive hace esto muy bien y viene de un fondo Actionscript que encontré bastante fácil de usar, tuve que mirar las demostraciones ya que la documentación no es útil.

Para ayudarle ..

square = engine.createShape({ 
    shape: 'square', 
    style: 'filled', 
    backgroundColor: '#000', 
    width: 120, 
    height: 20, 
    x: 20, 
    y: 100 
}); 

para hacer cualquier acciones del ratón que necesita para añadirlo a un objeto de clip.

clip = engine.createClip({ x: 20, y: 20 }); 

Entonces

clip.add(square); 

añadir un detector de eventos

clip.addEventListener('onmouseover',function(e) { some code ... }); 
clip.addEventListener('onclick',function(e) { some code ... }); 

En el bucle que necesita para luego dibujar el cuadrado.

clip.draw(); 

estoy usando la fuente de las versiones parciales de programa que me ayude a través de lo que tal vez echa un vistazo a http://www.bhivecanvas.com/demos/cargame.php como que tiene vuelcos y onclicks en ella.

6

No se olvide de KineticJS, que funciona mucho mejor que los que usted ha mencionado, además de que tiene una API mucho más simple