Artículos con etiqueta: Actionscript

Justo lo que necesitabas

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

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

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

Julio 1st, 2006

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

Julio 1st, 2006

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.

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

Spacializer

Febrero 20th, 2006

Spacializer es un experimento visual en flash realizado por Sébastien Chevrel. Su sitio está lleno de otros experimentos interesantes (la mayoría hechos con Processing). A proposito, te puedes bajar el codigo fuente de ese experimento.

Me lo encontre cuando navegaba por stumbleupon.

Ya que estoy dando links, voy a poner estos otros, que tambien valen la pena en materia de experimentos visuales:
Incomplet: galeria de experimentos de Grant Skinner y
Flight 404, galeria de proyectos en su mayoría realizados con Processing.

fCMS | flash component

Febrero 16th, 2006

En el blog play.ground nos cuenta su autor que acaba de sacar un componente en flashloaded: un pequeño CMS que te permite editar texto e imagenes directamente desde tu sitio Flash.

Si el precio de $129.95 no te desanima, puedes encontrar mas detalles en flashloaded, acompañado de una guia y hasta un ejemplo.

El componente trabaja con archivos xml, asi que supongo que no necesitas base de datos. Lo que si, veo que le falta la habilidad de poder agregar y quitar registros. Quien sabe, talvez despues.