29 julio 2007

Detener una película en Actionscript 3

Dándole vueltas a AS3 y su supuesta complejidad intenté hacer una prueba que consiste en detener la línea de tiempo de una película normal de Flash CS3, algo que se viene haciendo desde los principios de Flash con un simple stop();

Manos a la obra: se accede al fotograma en cuestión, se saca el panel de acciones y se escribe lo siguiente:
this.stop();
Ya está, con eso se detiene la línea de tiempo utilizando Actionscript 3. Es decir, exactamente igual que con AS2 (de hecho, lo del this está puesto para que parezca un poco más oop, en realidad con stop(); también funciona).

La conclusión es la de siempre, Actionscript 3 es muy adecuado para crear grandes proyectos que requieran calidad, claridad y velocidad, pero sigue cubriendo las necesidades de aquellas personas que quieran hacer cosas más sencillas.

Actualización (05/02/2010): Dado que había alguna confusión con esto he puesto algunos ejemplos en esta dirección: http://sites.google.com/site/flashsourcesandresources/

Por ejemplo:



Tampoco puedo dejar de recordar que el tema de las escenas está totalmente desaconsejado en la actualidad en el trabajo con Flash, ya que hay otras formas más completas de controlar el flujo de nuestros proyectos.

10 comentarios:

Enrique dijo...

Por algún motivo cuando trabajo con más de una escena el stop() o el this.stop() brinca a la otra escena sin respetar el comando.
Hay alguna razón o es un "bug"?

Anónimo dijo...

A mi me pasa lo mismo... this.stop(); no detiene la pelicula. También tengo más de una escena.

¿Alguna idea?

Marixay dijo...

Me ocurre lo mismo, puse el: this.stop();
ignoró el comando, tengo mas de una escena, en mi codigo el corrector no marca ningun error.
Ya me puse de malas.

Antonio dijo...

Os aseguro que funciona. Lo acabo de probar de nuevo, ya que me resultaba extraño tanto fallo y he podido ver que funciona sin problema con varias escenas.

En este espacio tienes algunos ejemplos con sus códigos fuente:

http://sites.google.com/site/flashsourcesandresources/

HugoBoq dijo...

es extraño, a mi en un proyecto con varias escenas me funciono, pero en otro muy parecido no, a que puede deberse?

Antonio dijo...

Siempre hay una explicación. Las cosas en programación son muy precisas, alguna diferencia entre los dos ejemplos debe ser la causa.

Si nos enseñas el código del que falla seguro que damos con la respuesta.

Un saludo.

HugoBoq dijo...

realmente el unico codigo que maneje es stop(); al final de cada escena para que no "corriera" tan rapidamente. ambas animaciones son de caracteristicas similares (realmente una es el "boceto" o prueba del otro, aqui el que funciona bien es el "boceto", porque el producto final no lo hace).

Saludos

Antonio dijo...

Debe haber algún pequeño matiz que se nos escapa....

Un saludo.

HugoBoq dijo...

pues al final decidi meterle el codigo en Actionscript 2.0 y funciono perfectamente. Gracias

Anónimo dijo...

Por lo que he descubierto hasta el momento, cuando Action Script 3.0 encuentra un error, deja de leer todo el código. El error puede ser sintàctico, pero también contempla como error si hemos intentado programar un boton a la antigua usanza. Si borrais el código, no dejeis ninguna linea, porque aunque sea en blanco, considera que hay script y deja de leer todos los códigos.