Archivos del tag:

Flash 9 preview

flash9

Por fin, me baje e instale el preview de Flash 9 (que es gratuito, si es que posees Flash 8). Para que? pues para aprender Actionscript 3. No se que tendra de bueno, asi que talvez empiece por este tutorial (y de paso aprendo como utilizar el sdk de flex), y con uno y otro ejemplo de klr20mg

Bitmapdata, copiando canales de color III

En dos post anteriores (I y II) hablabamos de la clase BitmapData y su metodo copyChannel para copiar un canal de color de un bitmap a otro.

Ahora bien, aqui tienen un pequeño efecto que se puede crear utilizando lo que ya aprendimos.

Mueve el mouse sobre la imagen

La idea es tener 3 movieclips vacios en el Stage, todos con blending mode 'Multiply'. Luego, añado un bitmap a cada movieclip, copiando un canal de color del bitmap original. No pongo el codigo, porque es basicamente el mismo que el explicado en la parte I de este tema.

El efecto tambien se puede realizar sobre un fondo negro, con la diferencia de que los bitmaps que voy a modificar, son negros, y el blending mode de los movieclips es 'Add'

Mueve el mouse sobre la imagen

Pueden bajar el archivo fla para ver que es lo que se hizo exactamente:
Bajar el archivo fla (flash 8 ): colortest3.zip

Bitmapdata, copiando canales de color II

Este es otro ejemplo de copiar la informacion de un canal de un bitmap hacia otro. En un post anterior habia explicado como realizarlo.

Bajar el archivo fla (flash 8 ): colortest2.zip

Bitmapdata, copiando canales de color

Mas codigo, esta vez, vamos a jugar un poco con el objeto BitmapData de Flash 8.

En este ejemplo esta la imagen original, y tres imagenes, con los colores cambiados. Como? pues copie la informacion del canal verde del bitmap original de tres distintas formas. Veamos que se hizo.
Read the rest of this entry »

Redondear numeros. Parte II

En el post anterior mostraba una funcion para redondear un numero a un numero especifico de decimales.

Puse esa funcion en una clase (LaoMath), y le agruege una caracteristica mas: si quisiera redondear 65.6565 a dos decimales, uso el metodo round de mi clase LaoMath:

Actionscript:
  1. import com.innocuo.utils.LaoMath;
  2. var num:Number = 65.6565;
  3. trace(LaoMath.round(num,2)); //devuelve 65.66

Facil, verdad? ahora, si quiero mostrar el resultado con 4 decimales (en el ejemplo, el resultado deberia tener dos ceros mas al final), el codigo es:

Actionscript:
  1. import com.innocuo.utils.LaoMath;
  2. var num:Number = 65.6565;
  3. trace(LaoMath.round(num,2,4)); //devuelve 65.6600

En el ejemplo LaoMath.round es el metodo que utilizo para redondear el numero, num es el numero que quiero redondear, 2 es la posicion decimal a la que quiero redondear, y 4 es el numero minimo de decimales que debo tener. Atencion, que es el numero minimo, asi que en este otro ejemplo, no funcionaria igual:

Actionscript:
  1. import com.innocuo.utils.LaoMath;
  2. var num:Number = 65.6565;
  3. trace(LaoMath.round(num,2,1)); //devuelve 65.66

En este caso pido que el numero devuelto tenga como minimo 1 decimal, pero estoy redondeando a dos decimales, asi que ese parametro se ignora.

Ahora, una caracteristica especial de este metodo es que permite no solo redondear a un numero decimal, sino tambien a decenas, centenas, miles, etc. Como? simplemente asignando un numero negativo al segundo parametro (la funcion entendera que estoy redondeando hacia la izquierda). Por ejemplo:

Actionscript:
  1. import com.innocuo.utils.LaoMath;
  2. var num:Number = 65.6565;
  3. //redondear por decenas
  4. trace(LaoMath.round(num,-1)); //devuelve 70
  5. //redondear por centenas
  6. trace(LaoMath.round(num,-2)); //devuelve 100
  7. //redondear por centenas, y mostrar el resultado con 3 decimales
  8. trace(LaoMath.round(num,-2,3)); //devuelve 100.000
  9. //OJO, si redondeo 65.6565 a miles, el resultado sera 0
  10. trace(LaoMath.round(num,-3)); //devuelve 0

Espero que estos ejemplos sean de utilidad. La clase es gratuita (si algun dia tengo tiempo, añadire otros metodos de interes).
bajar codigo: laomath.zip
documentacion: link
codigo fuente: link

Redondear numeros. Parte I

Finalmente, un poco de actionscript para compartir. :)

En Flash, el metodo round de la clase Math nos permite redondear decimales. Pero siempre redondea al numero entero mas proximo. Y si necesitamos redondear a dos, o tres, o cuatro decimales, como hacemos? El siguiente codigo lo muestra:

Actionscript:
  1. function round(qnum:Number, qdecimal:Number):Number {
  2.     var decimal:Number = Math.pow(10, Math.round(qdecimal));
  3.     var num:Number = Math.round(qnum*decimal)/decimal;
  4.     return num;
  5. }
  6. var num:Number = round(65.656321, 2);
  7. trace(num); //devuelve 65.66

Esta es una pequeña introduccion al siguiente post, donde añadire un par de detalles.

Tutoriales flash, en easy Flash

En easy-flash hay algunos tutoriales de flash, en español, no son muchos, pero vale la pena darles un vistazo.

Link: easy-flash
Via: Materia Gris

Categorias