asd

27

Feb

Formulario para enviar mails desde flash o formulario de contacto en flash

Publicado por: LeoBaraldi

SE ACTUALIZO ESTE POST, NUEVA VERSION DEL MISMO Y MEJORADO EN http://www.leobaraldi.com.ar/2008/09/13/formulario-de-contacto-flash-as3-funciona-para-cuentas-gmail-y-hotmail-inclusive/

Ante que todos vamos a necesitar que nuestro servidor soporte php porque por si solo el flash no puede enviar datos como un mail.

Vamos a usar el un código en php que esta disponible en muchas páginas de recursos para flash el cual sera el encargado de enviar nuestros mail.

La idea de este tuto es mostrarle como hacer desde flash para comunicarnos con dicho php y este envié un mail, en ustedes estara la posibilidad de agregar mas campos y personalizarlo a la medida que lo necesiten.

Pasemos al AS de flash, como siempre en el primer frame ponemos lo siguiente:

Actionscript:
  1. //por si tenemos caracteres raros como las ñ óáéíú
  2. System.useCodepage = true;
  3. //aqui abrimos la seguridad de nuestro server para este flash e indicamos el dominio
  4. System.security.allowDomain("http://www.misitio.com.ar/");
  5. //aquí que levante el archivo de políticas de seguridad
  6. System.security.loadPolicyFile("http://www.misitio.com.ar/crossdomain.xml");
  7. //esto que esta arriba y lo de la seguridad es un nuevo requerimiento para flash 8 para que no se
  8. //pueda ejecutar películas desde fuera de nuestro dominio
  9. //
  10. //
  11. //
  12. //un stop por si los mosquitos
  13. stop();
  14. //creamos una función enviar que verificara todos nuestros datos si están de manera correcta
  15. function enviar() {
  16. //creamos una variable con el valor 1 para validar el "esta todo bien"
  17. envio = 1;
  18. //
  19. //comenzamos a definir la variable que almacenara nuestros campos de textos de tipo introducción de texto
  20. //como pueden ver "variable" es el contenedor, en el se grabaran todos los datos
  21. //que el usuario ponga en cada campo.
  22. //NOTA: como pueden ver comenzamos de atrás para delante, si el ultimo campo de nuestro
  23. //formulario es el campo de consulta lo ponemos primero y así sucesivamente
  24. //de esta manera cuando recibamos el mail nos quedara en el orden correcto, porque pasa esto ni idea, si
  25. //alguien sabe que aporte.
  26. variables.Mensaje = consulta_txt.text;
  27. //acá vamos por el campo mail, como pueden ver hay un condicional simple que verifica que el
  28. //usuario no deje el campo en blanco.
  29. //si este esta en blanco en dicho campo escribe: "este campo es obligatorio"
  30. //y la variable "envio = 0" evitando de esta manera que el formulario se envié.
  31. if (mail_txt.text == "" || mail_txt.text == "este campo es obligatorio") {
  32. mail_txt.text = "este campo es obligatorio";
  33. variables.correo = mail_txt.text;
  34. envio = 0;
  35. } else {
  36. variables.Correo = mail_txt.text;
  37. }
  38. //aquí que agregue al contenedor el campo apellido
  39. variables.Apellido = apellido_txt.text;
  40. //aquí otro condicional igual al mail que nos obliga a poner un nombre
  41. if (nombre_txt.text == "" || nombre_txt.text == "este campo es obligatorio") {
  42. nombre_txt.text = "este campo es obligatorio";
  43. variables.nombre = nombre_txt.text;
  44. envio = 0;
  45. } else {
  46. variables.nombre = nombre_txt.text;
  47. }
  48. //aquí viene la verdad de la milanesa.
  49. //este condicional simple dice si todos los campos están completos incluyendo que en los obligatorios
  50. //no este la cadena de texto "este campo es obligatorio", entonces envía el mail
  51. if (envio == 1) {
  52. //aquí a nuestro contenedor le indicamos a que mail queremos recibir las consultas
  53. variables.email = "info@leobaraldi.com.ar";
  54. //aquí el titulo del mail
  55. variables.subject = "Formulario desde la Web";
  56. //aquí la dire de nuestro php
  57. //NOTA: OBSERVERSE que usamos el método "sendAndLoad" que significa, enviar y recibir una respuesta
  58. //después de ser enviado los datos.
  59. //quien envía? "variables". A donde? a la "url" que vemos abajo. Quien recibe la respuesta? "variables". Por que método? "post"
  60. //no se olviden de poner bien su direccion completa donde esta el php
  61. variables.sendAndLoad("http://www.misitio.com.ar/mail.php?nocache="+random(10000), variables, "POST");
  62. }
  63. }
  64. //para usar el metodo sendAndLoad debemos declarar un nuevo objeto en este caso "new LoadVars()"
  65. variables = new LoadVars();
  66. //como dijimos  antes tenemos un send and load y load se refiere a que alguien o algo en el flash
  67. //recibirá la respuesta de "ok el servidor envio el mail" y el encargado del mismo es "onload"
  68. variables.onLoad = function() {
  69. //por o tanto acá podemos desencadenar cualquier evento que le avise al usuario que su
  70. //mensaje fue enviado correctamente
  71. estado_txt.text = "Mensaje enviado correctamente..."+newline+"Gracias..."
  72. };
  73. //bueno este es simple es el botón que al presionarlo haga todo lo que vimos arriba.
  74. enviar_btn.onRelease = function() {
  75. enviar();
  76. };

20

Feb

Desordenar un array random en flash 8

Publicado por: LeoBaraldi

Nuestro amigo Maximiles nos hace llegar otra duda con respecto a la galería de imagenes que usa un array para mostrar las fotos, la inquietud de el es que cada vez que ingresen al sitio vea las fotos de manera diferente con respecto a su orden.

Para ellos simplemente vamos a usar un prototipo en este caso para la clase Array que se encargara de recorrer nuestros elementos y desacomodarlos y volver el mismo array con diferente orden entre sus indices.

Escribimos el prototipo, en el primer frame como siempre de nuestra peli principal.

Actionscript:
  1. Array.prototype.random = function() {
  2. var len = this.length;
  3. var temp = new Array();
  4. for (var i = 0; i<len; i++) {
  5. var ran = Math.round(Math.random()*(this.length-1));
  6. temp[i] = this[ran];
  7. this.splice(ran, 1);
  8. }
  9. for (var j = 0; j<len; j++) {
  10. this[j] = temp[j];
  11. }
  12. };

Y simplemente para usarlo seria asi: (despues que creamos o mandamos los datos al array)

Actionscript:
  1. misFotos_array.random();

Así quedaria el codigo de nuestra galeria con este nuevo agregado:

Actionscript:
  1. //Aqui indicamos que use codificasión, por si hay caracteres como ñ, acentos o cosas raras
  2. System.useCodepage = true;
  3. //la carpeta que tiene nuestras fotos, con un nombre medio cambiado por si ya tenemos otra
  4. //carpeta llamada imagenes
  5. var fotos:String = "gal/";
  6. //velocidad del efecto entre fotos
  7. var fade:Number = 35;
  8. //primera foto a cargar
  9. var iniciarFoto:Number = 0;
  10. //tiempo que se va a mostrar
  11. var tiempo:Number = 100;
  12. //contador fade
  13. var controlFade:Number = 0;
  14. //contador de tiempo
  15. var controlTiempo:Number = 0;
  16. //creamos un objeto xml porque en definitiva el php nos devolvera un xml
  17. miXML = new XML();
  18. miXML.ignoreWhite = true;
  19. miXML.onLoad = function(ok) {
  20. if (ok) {
  21. misFotos_array = this.firstChild.childNodes;
  22. misFotos_array.random();
  23. _root.createEmptyMovieClip("contenedor1_mc", 10);
  24. _root.createEmptyMovieClip("contenedor2_mc", 20);
  25. contenedor1_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  26. iniciarFoto++;
  27. contenedor2_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  28. contenedor2_mc._alpha = 0;
  29. curr_mc = 1;
  30. onEnterFrame = function () {
  31. if (curr_mc == 1) {
  32. controlTiempo++;
  33. if (controlTiempo>=tiempo) {
  34. curr_mc = 2;
  35. cambio = "IN";
  36. }
  37. }
  38. if (curr_mc == 2) {
  39. if (cambio == "IN") {
  40. contenedor2_mc._alpha += 100/fade;
  41. if (contenedor2_mc._alpha>=100) {
  42. contenedor2_mc._alpha = 100;
  43. cambio = "FIJO";
  44. controlTiempo = 0;
  45. iniciarFoto++;
  46. if (iniciarFoto == misFotos_array.length) {
  47. iniciarFoto = 0;
  48. }
  49. contenedor1_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  50. }
  51. }
  52. if (cambio == "FIJO") {
  53. controlTiempo++;
  54. if (controlTiempo>=tiempo) {
  55. cambio = "OUT";
  56. }
  57. }
  58. if (cambio == "OUT") {
  59. contenedor2_mc._alpha -= 100/fade;
  60. if (contenedor2_mc._alpha<=0) {
  61. contenedor2_mc._alpha = 0;
  62. curr_mc = 1;
  63. controlTiempo = 0;
  64. iniciarFoto++;
  65. if (iniciarFoto == misFotos_array.length) {
  66. iniciarFoto = 0;
  67. }
  68. contenedor2_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  69. }
  70. }
  71. }
  72. };
  73. }
  74. };
  75. //la url de nuestro PHP que crea un xml
  76. miXML.load(fotos+'lista.php');
  77. //
  78. Array.prototype.random = function() {
  79. var len = this.length;
  80. var temp = new Array();
  81. for (var i = 0; i
  82. var ran = Math.round(Math.random()*(this.length-1));
  83. temp[i] = this[ran];
  84. this.splice(ran, 1);
  85. }
  86. for (var j = 0; j
  87. this[j] = temp[j];
  88. }
  89. };

Como pueden ver al prototype lo puse al final, no hay problema porque el flash tiene un orden de lectura y siempre lee las funciones y prototipos antes de seguir ejecutando el resto del codigo, pero lo mejor es ponerlo al principio asi les queda mas facil y mas ordenado sobretodas las cosas.

categorias: Prototipos Coment.: 10

10

Feb

Reproductor mp3, con lista de reprodución mas lector de id3

Publicado por: LeoBaraldi

A pedido de un amigo (Pablo Hamada) prepare este reproductor de mp3 que en particular tiene la posibilidad de levantar una lista de reproducción de temas cargados de una carpeta automáticamente, con solo poner nuestros mp3, el flash se encarga de leerlos y presentarlos en un componente tipo list.

Otras de las particularidades que incluyes es que lee las etiquetas ID3 de nuestros mp3s, dichas etiquetas son las que traen los archivos mp3 con información de nombre del álbum, nombre del tema y muchas cosas mas.

Este ejemplo es totalmente orientado a modo de aprendizaje para que ustedes puedan aprender un poquito mas sobre la clase sound y puedan experimentar mas.

Actionscript:
  1. //esta linea lo que hace es evitar que se cachee la lista de temas
  2. #include "skipCache.as"
  3. //para uso de caracteres especiales
  4. System.useCodepage = true;
  5. //la carpeta donde estan los mp3
  6. var filesMp3:String = "http://www.leobaraldi.com.ar/imagenesgenericas/repmp3/temas/";
  7. var temaActual:Number = 0;
  8. //estructura xml
  9. miXML = new XML();
  10. //ignorar espacios en blanco
  11. miXML.ignoreWhite = true;
  12. //detector si se realizo la carga
  13. miXML.onLoad = function(ok) {
  14. //si se realiso la carga bien
  15. if (ok) {
  16. //generamos u array con los elemntos encontrados en la carpeta filesMp3
  17. misTemas_array = this.firstChild.childNodes;
  18. //recorremos nuestro array para rellenar nuestra lista de temas
  19. for (var i = 0; i var nombreFile = misTemas_array[i].attributes.name;
  20. my_list.addItem({data:nombreFile, label:nombreFile});
  21. }
  22. } else {
  23. // error
  24. }
  25. };
  26. miXML.load(filesMp3+"lista.php"+getSkipCacheString());
  27. //declaramos un objeto sonido
  28. var my_sound:Sound = new Sound();
  29. //recuperar nombre del tema para nuestra lista
  30. my_sound.onID3 = function() {
  31. //nombre de artista
  32. artistaID3 = my_sound.id3.artist;
  33. nombArtista_txt.text = artistaID3;
  34. //nombre del tema
  35. temaID3 = my_sound.id3.TIT2;
  36. nombTema_txt.text = temaID3;
  37. //nombre del album
  38. albumID3 = my_sound.id3.album;
  39. nombAlbum_txt.text = albumID3;
  40. //año
  41. anoID3 = my_sound.id3.year;
  42. ano_txt.text = anoID3;
  43. //comentarios
  44. comentID3 = my_sound.id3.COMM;
  45. //si quieren pueden incluir algunos condicionales pero no siempre
  46. //nos devuelve undefined
  47. if (comentID3 == undefined) {
  48. comentarios_txt.text = "Sin datos...";
  49. } else {
  50. comentarios_txt.text = comentID3;
  51. }
  52. };
  53. //creamos un escuchador para nuestra lista
  54. var listListener:Object = new Object();
  55. //detecta si hacemos clic sobre un tema
  56. listListener.change = function(evt_obj:Object) {
  57. //ejecuta el sonido
  58. my_sound.loadSound(filesMp3+evt_obj.target.selectedItem.data, true);
  59. //ejecuta una mascarita :P
  60. maskInfo_mc.gotoAndPlay("go");
  61. cargar();
  62. };
  63. // Añadir detector.
  64. my_list.addEventListener("change", listListener);
  65. //cargador que nos indicara el progreso de la carga del sonido
  66. function cargar() {
  67. carga_mc._visible = true;
  68. carga_mc.onEnterFrame = function() {
  69. //aqui averiguamos el peso total de nuestro sonido
  70. total = my_sound.getBytesTotal();
  71. //aqui detectamos cuanto se ha cargado de nuestro tema
  72. cargado = my_sound.getBytesLoaded();
  73. //por regla de 3 sacamos el porcentaje de carga
  74. porcentaje = Math.round((cargado*100/total));
  75. //le indicamos donde queremos que se dirija la barra
  76. this.gotoAndStop(porcentaje);
  77. //condicional que si llegamos a cargar el 100% lo siguiente:
  78. if (porcentaje == 100) {
  79. //eliminar el EnterFrame asi no nos consume memoria
  80. delete this.onEnterFrame;
  81. carga_mc._visible = false;
  82. }
  83. };
  84. }
  85. //acciones botones simples
  86. stop_btn.onRelease = function() {
  87. my_sound.stop();
  88. };
  89. play_btn.onRelease = function() {
  90. my_sound.start();
  91. };
  92. //
  93. carga_mc._visible = false;

9

Feb

Corto en flash a la TV, por Luciana Soledad Enrici

Publicado por: LeoBaraldi

Corto de Luciana Soledad EnriciComo muchos sabemos una de las posibilidades mas importante de Macromedia flash es la animación vectorial lineal, un ejemplo concreto es este corto totalmente realizado en flash por Luciana Soledad Enrici de 27 años "Técnica en Medios Audiovisuales", cordobesa que en la actualidad se destaca por sus trabajos de edición, filmación de programas y cortos. Ella junto a su socia Belen fundaron punto.avi, una productora que apuesta por las innovaciones y la calidad logrando excelente trabajos finales para clientes privados o canales de televisión.

Este corto cuenta con una historia completa, con un guión acorde y entretenido, que nos invita a sumergirnos y ser por momentos partes nosotros mismo de este recorrido. Con una selección de sonido acorde y bien conjugados a la animación.

Excelente labor por el esfuerzo que conlleva hacer estos tipos de proyectos y por su excelentísima calidad los invito a todos que puedan verlo en el canal ISAT el día Martes 20 de Febrero a las 1:30 horas.

Para comunicarse con Luciana: bsasviceversa@hotmail.com

categorias: Otros Coment.: 1

3

Feb

Galeria de fotos con fade auto administrable

Publicado por: LeoBaraldi

Este tutorial surge por la necesidad de un amigo Maximiles que esta incurriendo en los ámbitos de flash, y su consulta es como hacer una galería de imágenes con una transición entre cada foto automáticamente. A la misma sumarle la posibilidad de que con solo tirar las imágenes a una carpeta esta construya la galería sin incurrir en códigos extras como XML.
Bueno para dicho trabajo vamos a usar obviamente flash y un poquito de PHP que será el encargado de recorrer nuestra carpeta de imágenes y generar un XML con las fotos a mostrar. Manos a la obra y mucha atención alumno Maximiles!!!! :P

Ante que todo creamos un php que recorrerá la carpeta que tiene nuestras imágenes y con ellas creara un archivo XML con la info de las mismas.
No vamos a explicar esta porción de código PHP por una razón que nos iríamos del tema, pero no es complicado, y de última así como esta funciona jeje.

PHP:
  1. <?php
  2. $No=array(".","..","lista.php", "borrar.php", "Thumbs.db");
  3. $fp=opendir(".");
  4. echo "<?xml version='1.0' encoding='iso-8859-1'?".">";
  5. echo "<files>";
  6. while (false!==($file=readdir($fp))){
  7.     if ((!in_array($file,$No))&&(is_readable($file))){
  8.         echo "<file name='".utf8_encode($file)."' tamanio='".filesize($file)."' />";
  9.     }
  10. }
  11. closedir($fp);
  12. echo "</files>";
  13. ?>

Este PHP guárdelo donde están las imágenes, creen una carpeta “img” y dentro de ella colóquelo.

Ahora pasemos a flash:
En nuestro primer frame de nuestra linea de tiempo principal vamos a colocar el código que vamos a crear.

Actionscript:
  1. //Aqui indicamos que use codificasión, por si hay caracteres como ñ, acentos o cosas raras
  2. System.useCodepage = true;
  3. //la carpeta que tiene nuestras fotos, con un nombre medio cambiado por si ya tenemos otra
  4. //carpeta llamada imagenes
  5. var fotos:String = "images/";
  6. //velocidad del efecto entre fotos
  7. var fade:Number = 20;
  8. //primera foto a cargar
  9. var iniciarFoto:Number = 0;
  10. //tiempo que se va a mostrar
  11. var tiempo:Number = 100;
  12. //contador fade
  13. var controlFade:Number = 0;
  14. //contador de tiempo
  15. var controlTiempo:Number = 0;
  16. //creamos un objeto xml porque en definitiva el php nos devolvera un xml
  17. miXML = new XML();
  18. miXML.ignoreWhite = true;
  19. miXML.onLoad = function(ok) {
  20. if (ok) {
  21. misFotos_array = this.firstChild.childNodes;
  22. _root.createEmptyMovieClip("contenedor1_mc", 10);
  23. _root.createEmptyMovieClip("contenedor2_mc", 20);
  24. contenedor1_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  25. iniciarFoto++;
  26. contenedor2_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  27. contenedor2_mc._alpha = 0;
  28. curr_mc = 1;
  29. onEnterFrame = function () {
  30. if (curr_mc == 1) {
  31. controlTiempo++;
  32. if (controlTiempo>=tiempo) {
  33. curr_mc = 2;
  34. cambio = "IN";
  35. }
  36. }
  37. if (curr_mc == 2) {
  38. if (cambio == "IN") {
  39. contenedor2_mc._alpha += 100/fade;
  40. if (contenedor2_mc._alpha>=100) {
  41. contenedor2_mc._alpha = 100;
  42. cambio = "FIJO";
  43. controlTiempo = 0;
  44. iniciarFoto++;
  45. if (iniciarFoto == misFotos_array.length) {
  46. iniciarFoto = 0;
  47. }
  48. contenedor1_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  49. }
  50. }
  51. if (cambio == "FIJO") {
  52. controlTiempo++;
  53. if (controlTiempo>=tiempo) {
  54. cambio = "OUT";
  55. }
  56. }
  57. if (cambio == "OUT") {
  58. contenedor2_mc._alpha -= 100/fade;
  59. if (contenedor2_mc._alpha<=0) {
  60. contenedor2_mc._alpha = 0;
  61. curr_mc = 1;
  62. controlTiempo = 0;
  63. iniciarFoto++;
  64. if (iniciarFoto == misFotos_array.length) {
  65. iniciarFoto = 0;
  66. }
  67. contenedor2_mc.loadMovie(fotos+misFotos_array[iniciarFoto].attributes.name);
  68. }
  69. }
  70. }
  71. };
  72. }
  73. };
  74. //la url de nuestro PHP que crea un xml
  75. miXML.load(fotos+'lista.php');
  76. //

NOTA: Recuerden que esta galeria requiere un servidor de php, asi que sino tienen uno de tipo localhost, subalon a su sitio o a un sitio que soporte php.
Las imágenes van en la carpeta images y dentro de el va el archivo php, el swf va fuera de esa carpeta.

3

Feb

Desencadenar eventos en flash, uso de botones y movieClip

Publicado por: LeoBaraldi

Entre las tantas cosas que pueden desencadenar eventos en flash como por ejemplo si movemos el Mouse, si abrimos una película, si presionamos una tecla, también tenemos los botones.
Los botones en flash tienen la particularidad (entre tantas) de cuando le hacemos clic pueden realizar algo (evento), este evento tiene una manera y un ámbito de donde se desarrolla.
Ejemplo 1:

Actionscript:
  1. mi_boton_btn.onRelease = function (){
  2. //aquí la acción a realizar
  3. }

 

Ejemplo 2:

Actionscript:
  1. onRelease(){
  2. //aquí la acción a realizar
  3. }

En ambos ejemplos  usamos el detector (onRelease) que significa que el evento se va a desencadenar cuando el usuario presione y suelte el botón.
La diferencia de ambos ejemplos son que de la primera forma debemos indicar el nombre de instancia del botón que queremos detectar el evento y dicha porción de código será escrita sobre un frame.
En el segundo caso la acción esta incluida en el botón mismo.
En mi caso particular trato de evitar los botones como símbolo, y utilizo en su reemplazo clip de película, que estos pueden recibir las mismas propiedades de un botón mas los comportamientos típicos de un clip de película.

Como ya vimos un boton o clip de pelicula puede recibir o detectar el evento onRelease (cuando se presiono y se soltó el botón del Mouse) pero no es el único evento estos pueden recibir.

Sigamos con el caso de que tengamos una película y esta la usamos como si fuese un botón, los eventos entre tantos que este detectaría seria los siguientes.
Observen por ustedes mismos que el nombre de instancia usa el subfilo “_mc” al tipear un punto “.” Automáticamente flash nos desplegara todas las propiedades y eventos disponibles. Por supuesto que esta manera de escribir el codigo es para colocarlo en un frame de nuestra linea de tiempo.

Actionscript:
  1. miPelicula_mc.onRelease = function (){
  2. //accion al hacer clic y soltar el mouse
  3. }
  4.  
  5. miPelicula_mc.onRollOver = function (){
  6. //accion al pasar el Mouse por arriba
  7. }
  8.  
  9. miPelicula_mc.onRollOut = function (){
  10. //accion al salir el mause sobre la pelicula
  11. }
  12.  
  13. miPelicula_mc.onMouseMove= function (){
  14. //accion al mover el cursor del mouse
  15. }
  16.  
  17. miPelicula_mc.onPress= function (){
  18. //accion al presionar el mouse
  19. }

Prueben ustedes mismo mas opciones, pero un ejemplo practico y sencillo seria tener un objeto en nuestro escenario y al presionarlo es se arrastre (Drag) y al soltar el Mouse este deje de arrastrarse.

Actionscript:
  1. miPelicula_mc.onPress= function (){
  2. this.startDrag ()
  3. }
  4.  
  5. miPelicula_mc.onRelease= function (){
  6. this.stopDrag ()
  7. }

Nuestro primer evento indica que mientras este presionado el mouse esta (this) pelicula se arrastre.
El segundo evento se desencadenara cuando soltemos el Mouse, por lo tanto esta (this) pelicula dejara de arrastrarse.

NOTA: Como pueden ver usamos la particula (this) que hace referencia directamente a mi mismo, seria lo mismo escribirlo de esta manera:

Actionscript:
  1. miPelicula_mc.onPress= function (){
  2. miPelicula_mc.startDrag ()
  3. }
  4.  
  5. miPelicula_mc.onRelease= function (){
  6. miPelicula_mc.stopDrag ()
  7. }

Pero de esta manera queda poco prolijo y en un tiempo fututo les puede traer algunos problemas, asi que siempre cuando nos refiramos a nosotros mismos podemos reemplazar nuestro nombre de instancia o lo que sea por “this

Leonardo David Baraldi

Leonardo Baraldi

Nací en Villa Carlos Paz, tengo 33 años y me dedico a desarrollos para la web desde el año 99, preferentemente en las aéreas de ActionScript y CSS. Trabajo para la firma Manifesto Solutions como jefe de producción.

ultimos post

Usa Firefox es mejor che!!!
Copyright © 2008 LeoBaraldi. Todos los derechos reservados.
Designed by LeoBaraldi and powered by Wordpress | RSS Feed
Love WordPress
Manifesto
Manifesto solutions
Sponsort Oficial de LeoBaraldi