Entradas con la etiqueta ‘Flash’

Emitir eventos personalizados en AS3 (II)

Publicado por Iván Gajate el 22 de noviembre de 2008 en AS3, Flash, Tutoriales | 12 comentarios »

Ya vimos que se pueden emitir eventos personalizados para recogerlos con un listener, no tenemos que limitarnos a los que trae Flash por defecto.

Ahora vamos a dar un paso más. Queremos emitir un evento que diga que se ha terminado una acción, pero además queremos indicar si ha ido bien (true), o ha ido mal (false).

Este es el evento que queremos emitir:

dispatchEvent(new EventExtra("accionTerminada", true));

Creamos un nuevo evento de tipo EventExtra donde le indicamos el nombre del evento que queremos emitir y los parámetros que queramos, que para eso es nuestro evento 🙂

Vamos a ver la clase EventExtra:

package {

	import flash.events.*;

	// Extiendo la clase Event para que funcione como un evento mas al enviarse y recibirse.
	public class EventExtra extends Event{

		public var exito:Boolean;

		public function EventExtra(nombre:String, exito:Boolean=true){
			// Inicializo el constructor de Event
			super(nombre);
			// Guardo el valor de exito en una variable para poder acceder luego a ella.
			this.exito = exito;
		}
	}
}

No tiene nada especial, es un envoltorio de la clase Event pero recibe un parámetro extra que almaceno para luego poder acceder a su valor.

Así es como se recogería nuestro evento, con un listener, como siempre en AS3:

// Escucho si objetoEmisor emite el evento "accionTerminada" y le indico su detector de eventos.
objetoEmisor.addEventListener("accionTerminada", detectorAccionTerminada)

// El detector del evento, recibe un objeto evento de tipo EventExtra
function detectorAccionTerminada(evento:EventExtra):void{
	// Como tengo una referencia al evento, puedo acceder a sus variables publicas (exito).
	trace(evento.exito)
}

Leer el resto de esta entrada

Pasar parámetros al addEventListener en AS3

Publicado por Iván Gajate el 5 de noviembre de 2008 en AS3, Flash, Tutoriales | 33 comentarios »

Algo tan sencillo y resulta que no se puede ¿?

plegar_btn.addEventListener(MouseEvent.MOUSE_UP,  plegar, true);

No me deja ponerle mas parámetro tras la referencia a la función. ¿para qué sirve una función si no le puedo pasar parámetros? Y es una pena, porque con éste método ya me había olvidado del Delegate.create… 😉

Buscando por la red, la solución que mas me convence por lo sencilla y elegante es la de Wildwinter, que se ha construido una clase Callback tal y como se hacía con el Delegate de AS2, de tal manera que ahora podemos poner

plegar_btn.addEventListener(MouseEvent.MOUSE_UP, Callback.create(plegar, true));

Y con ello conseguimos poder pasar los parámetros que queramos a la función plegar. En este caso "true", pero podría ser cualquier otro, o varios.

Lo mejor de este método frente a otros es que es un "envoltorio" del verdadero evento, con lo que en la función receptora, seguiremos teniendo como primer parámetro el evento de tipo MouseEvent.

Leer el resto de esta entrada

SWFObject 2.1

Publicado por Iván Gajate el 29 de octubre de 2008 en AS2, AS3, Desarrollo Web, Flash, Tutoriales | 12 comentarios »

Hay una nueva versión de esta librería de JavaScript que sirve para incrustar contenido flash en nuestro html.

Como ya hemos visto en Flash 99% bueno, esta forma de hacerlo nos ofrece varias ventajas:

  1. Es muy fácil de insertar, mas sencillo que incluir las etiquetas object, es una solución respetuosa con los estándares, y es común para todos los navegadores.
  2. Evita el tener que hacer clic sobre el objeto flash para activarlo en las últimas versiones de Internet Explorer.
  3. Nos permite incluir un contenido "alternativo" accesible para usuarios que no tengan flash player o naveguen con JavaScript deshabilitado.
  4. Google y otros motores de búsqueda son capaces de leer e indexar ese contenido alternativo perfectamente.

 

Ahora, con el SWFObject, ponemos una capa (div) con el contenido no-flash o alternativo (por supuesto podemos dejarla vacía). Esta capa, será sustituida por el contenido flash, de forma totalmente transparente para el usuario.

Eso si, tenemos que darle un id a la capa para que el SWFObject sepa dónde queremos que ponga nuestro flash.

<div id="miFlash">Texto Alternativo</div>

Ahora, en la cabecera del html, incluimos la librería del SWFObject, y hacemos la llamada para que se incluya el flash.

<script type="text/javascript" src="swfobject.js"></script>

<script type="text/javascript">
	//swfobject.embedSWF(swfUrl,      id,    width, height, version)
	swfobject.embedSWF("test.swf", "miFlash", "300", "120", "8.0.0");
</script>

Leer el resto de esta entrada

TweenLite. Tween sencillo, ligero y potente

Publicado por Iván Gajate el 22 de octubre de 2008 en AS2, AS3, Flash, Tutoriales | 19 comentarios »

Llevaba tiempo queriendo probar esta librería para hacer Tweens, dicen que el rendimiento es increíblemente bueno y es muy sencilla de usar. Y en tan solo 3KB!

Hay muchas librerías de tweens, como Tweener, Zigo o las propias de Flash. Yo he probado algunas pero no termina de convencerme ninguna. La de Flash era la que usaba hasta ahora, pues las otras me habían dado problemas anteriormente, pero se queda corta algunas veces.

La TweenLite me ha sorprendido por lo fácil que es de usar, y tiene todo lo que siempre he necesitado en un Tween y alguna característica que no me esperaba.

Nota: Un Tween es una forma de animar objetos mediante programación. Es muy útil cuando no conoces el punto inicial de la animación.

Vamos a hacer un movimiento sencillo, una bola moviéndose de izquierda a derecha con movimiento elástico.

(Archivo Flash, para verlo necesitas Adobe Flash Player.)

Leer el resto de esta entrada

Made In Flex Onsite III

Publicado por Iván Gajate el 20 de octubre de 2008 en Eventos, Flash | 17 comentarios »

El viernes fue la tercera entrega de esta serie de eventos que organizan los de Made In Flex y la primera a la que asisto yo. Aunque Flex no es lo mío, siempre se aprenden muchas cosas en este tipo de eventos.

 

Alberto Alcaraz

nos habló sobre optimización en Flex. Impresionantes los resultados obtenidos con sólo cambiar algunos métodos utilizados. Aunque casi todo era Flex, algunas cosas valían para Flash perfectamente, como la declaración de variables locales estáticas o la definición previa en un bucle de su límite de iteraciones para evitar que el player tenga que recalcularlo en cada pasada del bucle.

Joan Garnet

hizo una clarísima introducción a Papervision3D, ya he visto unas cuantas sobre el tema, pero me gusta mucho cómo lo explica Joan, de forma clara y sencilla, haciendo pequeños ejemplos con cada concepto. Lo mismo hasta me animo de una vez a tocar esta librería 🙂

Además, me hizo fijarme en algunos detalles que no conocía, como el método onRenderTick para actualizar el render en Papervision. También fue buena idea heredar de BasicView para evitarte clases tan largas.

Joseba Alonso y Xavi Beumala

se explayaron de lo lindo con las novedades de Flash CS4. Más de uno estaba deseoso de ponerle la mano encima al paquete, jeje.

La mayoría de novedades sobre interfaz y similar ya lo habíamos visto en cristalab, pero vi algunos detalles en los que no me había fijado antes:

La posibilidad de alargar y acortar la línea de tiempo de una animación simplemente alargando su sprite va a ahorrar muchas horas con los típicos clientes de “un poquito mas rápido”, y ahora “un poquito mas lento”, “no, vuelve a ponerlo mas rápido, pero no tanto como antes…”  :[grr]

Aunque vuelvo a recordar, que eso ya lo hacíamos en Director hace años, pero bienvenido sea.

También habló de Pixel Bender, un toolkit para desarrollar filtros que luego se pueden usar en Flash e incluso en After Effects. Se trata de una aplicación en la que se pueden programar filtros como los de Photoshop basados en la modificación de píxels, y que posteriormente se pueden usar en flash. Lo mejor es que funcionan en otro proceso distinto al del player de Flash, aprovechándose una vez mas de la tarjeta gráfica y de procesos a bajo nivel, aumentando así el rendimiento, separando el trabajo de nuestra película, del procesamiento de la imagen. Impresionante.

Leer el resto de esta entrada

Flash 99% Bueno

Publicado por Iván Gajate el 19 de octubre de 2008 en Accesibilidad, Flash, Tutoriales | 15 comentarios »

Al menos hoy por hoy sí.

Y es que "eso no se puede hacer" y "yo no lo se hacer" son dos cosas muy distintas, y muchas veces por desconocimiento nos creemos todo lo que nos dicen.

Cierto es que Flash a día de hoy no lo pueden leer los motores de búsqueda. Dicen que sí, que pueden leer los textos estáticos y los enlaces y bla, bla, bla… pero vamos, que si preguntas a alguien que sepa del tema te confirmará que una página hecha 100% en flash no se puede posicionar bien (o al menos yo no lo se hacer, jeje)

¿Y entonces los que vivimos de esto que hacemos?

Pues buscarnos la vida. Pero ya hay gente por ahí que ha mirado mucho este tema y se han llegado a algunas soluciones muy buenas que paso a resumir aquí:

La idea es bastante sencilla, todo lo que sea flash no lo ve un motor de búsqueda. Ni JavaScript. Y eso en este caso nos viene bien. Si sustituyo el contenido HTML por el contenido flash con JavaScript y el motor no puede leer JavaScript, tampoco se hace la sustitución, y se queda con el contenido de texto, que si pueden leer los buscadores.

Dicho de otra manera, es como cuando hace 5 años entrabas en una página web y te encontrabas dos botones, versión Flash y versión HTML decían. Es lo mismo, pero ahora la elección la hago yo por defecto: Si no tienes JavaScript te muestro la versión HTML y si lo tienes, te muestro mi súper-mega-página-100%-flashhhhhh 🙂

Leer el resto de esta entrada

Library BMP Editor

Publicado por Iván Gajate el 14 de octubre de 2008 en Flash | 16 comentarios »

Una de las cosas que mas pereza me produce es tener 100 imágenes en la biblioteca y tener que cambiar sus propiedades de exportación, como la calidad, suavizado, etc… de una en una. Es un suplicio.

Tanto, que hace un año hice una pequeña aplicación con jsfl (JavaScript para flash, muy útil para estas cosas). Pero hoy, trasteando por ahí, he encontrado una extensión para Flash que hace eso mismo pero con una interfaz mejor que la mía, no tengo problema en reconocer lo que está mejor 😉

library bmp editor

Es de OneByOneDesign, y aquí se puede descargar.

forEach en AS3

Publicado por Iván Gajate el 6 de octubre de 2008 en AS3, Flash, Tutoriales | 24 comentarios »

O la muerte del 95% de los bucles 🙂

Al menos yo cuando pienso en un bucle, mis manos empiezan a escribir

for(var i:Number=0; i<array._length; i++){ . . . }

Un minuto de silencio por los bucles… Ya.

Y es que la nueva clase Array de AS3 tiene algunos métodos muy interesantes, uno de ellos es el forEach, que ejecuta una función con cada elemento de la matriz, que es para lo que yo uso la mayoría de las veces un bucle en Flash, para recorrer un array y hacer algo con sus elementos.

Ahora cuando queramos hacer eso en AS3, tan solo tendremos que definir la función que queramos que se ejecute y listo. Muy limpio.

La función recibe tres parámetros: el elemento que corresponde de la matriz, su índice, y el array completo por si lo queremos usar para algo.

Leer el resto de esta entrada

MadinSpain 2008

Publicado por Iván Gajate el 20 de septiembre de 2008 en Diseño, Eventos, Flash | 14 comentarios »

¿Y qué pinto yo en un foro de diseñadores dirán algunos?

Pues de momento me lo pasé bomba, algunos ponentes parecian monologuistas de algún programa de televisión mas que diseñadores de algún tipo.

Además al final todo está relacionado, internet, motion graphics, campañas de publicidad online y offline, diseño gráfico… todo es crear, con una cámara, un pincel, con las palabras o con líneas de código no?

Se pueden ver las fotos del evento aquí y algunos vídeos en YouTube.

Leer el resto de esta entrada

Talleres Subflash 2008

Publicado por Iván Gajate el 19 de septiembre de 2008 en Eventos, Flash | Los comentarios están cerrados.

Cómo disfruté los talleres de verano organizados por Subflash este año en Alicante. Mas de 50 freakys juntitos todo el fin de semana hablando de Flash, diseño web, programación, PHP, Flash, Flash, Flash… 😀

Hablamos de JSFL para automatizar procesos, con Luis Adrián, una pena no haber podido ver ejemplos, sé que se pueden hacer maravillas con él, fundamentos de SEO con Jorge Quintas, y de la transición de AS2 a AS3 por Joan Garnet, una pequeña introducción para quitarnos el miedo.

Leer el resto de esta entrada