Pereyrada Newsletters #3 Indice 1. Palabras del editor 2. ActionScript (%(módulo)) 3. Clases (Array II) ______________________________________________________ 1. Palabras del Editor ====================== Ante todo mis disculpas por la demora en la salida del tercer newletters pero por suerte es por horas de trabajo y estudios. Lo cual me permite seguir actualizado y poder compartir experiencias con ustedes. Como novedad entre este newsletters y el otro puedo decirles que hemos armado un cd bajo una inquietud que nacio en forma personal. La pregunta era... cuantas herramientas hay alrededor de Flash Macromedia, uff la respuesta fue que hay muchas y entonces comenzamos a organizarlas. De esto surgio un CD que ademas de tener herramientas auxiliares de flash, incluimos editores de AS, un servidor (APACHE), Php 5, Mysql, herramientas para MySQL y editores de PHP. Por supuesto muchos de ellos son FREE o con licencia GNU y en otros casos trial's que permitan minimamente probarlos. Un cd que tiene 590 megas de software es interesante, más cuando es enfocado como base para los desarrolladores como nosotros que utilizamos mucho flash. Por supuesto que a mi no me gustaria un cd que en 90 días quede desactualizado, asi que agregamos un programa que permite ver la página de cada uno de los programas para que estemos informados de las últimas actualizaciones, este programa ademas permitirá actualizar su lista de software a traves de internet. Para que tengan una idea en el momento que estoy escribiendo este newslettes el cd ya tiene 103 programas. Espero que les sea de mucha utilidad como lo es para mi. Por supuesto que estoy abierto a cualquier crítica o sugerencia de parte de ustedes. Saludos A. Daniel Pereyra ______________________________________________________ 2. ActionScript (%(Módulo)) =========================== % Módulo es algo que los viejos programadores usamos seguramente en algún momento. Podrías describir esta función en una forma de muy de manual, tal como: Operador (aritmético); calcula el resto de la expression1 dividida por expression2. Si cualquiera de los parámetros de expression no es numérico, el operador módulo intenta convertirlos en números. La expression puede ser un número o una cadena que se convierte en un valor numérico. Bien, pero para que sirve?. Veamos algunos ejemplos.... trace(12 % 5) Esto devuelve 2, de donde saco el 2?.. Veamos este grafico 120 | 23 120 divido 23 nos da 5.21739130434783 y el resto es 5.... 5 5.21739130434783 Cuando puedo usar algo asi?... cuando necesitemos saber que la división es perfecta y el "módulo" da 0. Esto es muy útil para saber si ciertos número son múltimplos, en la práctica podemos ver el caso en que necesitamos saber si un número es par, por ejemplo. Como deducimos si el número es par?... simplemente haciendo nro % 2 , si da 0 es par....no esta buenisimo!! trace(120 % 2); trace(130 % 2); trace(11 % 2); stop(); Este AS nos va a dar dos veces 0 y el último 1, es decir que los dos primeros son pares y el último no. En la práctica aplicada sería algo así: A = Nro % 2); if(A==0){ trace("Par"); }else{ trace("Impar"); } stop(); Donde Nro puede ser un valor introducido o leido de algun lado en forma dinámica. Otro caso???.. si claro.... cuando es el año bisiesto?... cuando es divisible por 4... entonces... A = Anio % 4); if(A==0){ trace("Bisiesto"); }else{ trace("No es Bisiesto"); } stop(); Claro que Macromedia, o debo decir Adobe?, bueno...no es el caso. Quería decirles que hay una forma de asignar directamente el resultado del módulo aplicandolo de la siguiente manera: Anio %=4; if(Anio==0){ trace("Bisiesto"); }else{ trace("No es Bisiesto"); } stop(); ______________________________________________________ 3. Clases (Array II) ==================== En el newsletter anterior hablamos bastante de este tema, Array o matriz. Si bien muchos puntos quedaron claros, eso espero, también quedaron algunos otros puntos sin tocar que me parecen tan importantes como los anteriores. Uno de estos puntos es como cargar datos en una matriz que tengan una funcionalidad similar a los registros de una tabla... como dije?, si a una tabla. Veamos el siguiente ejemplo: Tabla = new Array(); Tabla.push({Apellido: "Perez", Nombre: "Jose", Edad: 20}); Tabla.push({Apellido: "Lopez", Nombre: "Gerardo", Edad: 30}); Tabla.push({Apellido: "Bartolo", Nombre: "Augusto", Edad: 17}); Tabla.push({Apellido: "Agapito", Nombre: "Hignacio", Edad: 40}); Tabla.push({Apellido: "Fernandez", Nombre: "Rodrigo", Edad: 35}); Tabla.push({Apellido: "Lopez", Nombre: "Analía", Edad: 45}); Tabla.push({Apellido: "Rodriguez", Nombre: "Mónica", Edad: 45}); trace(Tabla[0].Apellido+','+Tabla[0].Nombre+', Edad:'+Tabla[0].Edad); trace(Tabla[1].Apellido+','+Tabla[1].Nombre+', Edad:'+Tabla[1].Edad); trace(Tabla[2].Apellido+','+Tabla[2].Nombre+', Edad:'+Tabla[2].Edad); trace(Tabla[3].Apellido+','+Tabla[3].Nombre+', Edad:'+Tabla[3].Edad); trace(Tabla[4].Apellido+','+Tabla[4].Nombre+', Edad:'+Tabla[4].Edad); trace(Tabla[5].Apellido+','+Tabla[5].Nombre+', Edad:'+Tabla[5].Edad); trace(Tabla[6].Apellido+','+Tabla[6].Nombre+', Edad:'+Tabla[6].Edad); stop(); Sin entrar en muchos tecnisismos podemos decir que estamos usando un nombre de campo para obtener el dato almacenado en la matriz. Claro que podríamos haber puesto "Nombre" en ves de "Apellido" y obtendríamos todos los nombres, pero que pasa si los quiero ordenado por "Apellido"?. Es muy simple ordenar este array... Tabla = new Array(); Tabla.push({Apellido: "Perez", Nombre: "Jose", Edad: 20}); Tabla.push({Apellido: "Lopez", Nombre: "Gerardo", Edad: 30}); Tabla.push({Apellido: "Bartolo", Nombre: "Augusto", Edad: 17}); Tabla.push({Apellido: "Agapito", Nombre: "Hignacio", Edad: 40}); Tabla.push({Apellido: "Fernandez", Nombre: "Rodrigo", Edad: 35}); Tabla.push({Apellido: "Lopez", Nombre: "Analía", Edad: 45}); Tabla.push({Apellido: "Rodriguez", Nombre: "Mónica", Edad: 45}); Tabla.sortOn("Apellido"); trace(Tabla[0].Apellido+','+Tabla[0].Nombre+', Edad:'+Tabla[0].Edad); trace(Tabla[1].Apellido+','+Tabla[1].Nombre+', Edad:'+Tabla[1].Edad); trace(Tabla[2].Apellido+','+Tabla[2].Nombre+', Edad:'+Tabla[2].Edad); trace(Tabla[3].Apellido+','+Tabla[3].Nombre+', Edad:'+Tabla[3].Edad); trace(Tabla[4].Apellido+','+Tabla[4].Nombre+', Edad:'+Tabla[4].Edad); trace(Tabla[5].Apellido+','+Tabla[5].Nombre+', Edad:'+Tabla[5].Edad); trace(Tabla[6].Apellido+','+Tabla[6].Nombre+', Edad:'+Tabla[6].Edad); stop(); Si, esta ordenado por apellido, claro que podemos ordenar por "Nombre" o "Edad" de la misma manera, no es facil?. Y si queremos eliminar un elemento del Array?.... Bueno en el proximo newsletter vamos a armar un AS lo mas simple posible para que podamos tener la base de un ABM de un array. ABM= Alta (Agrego), Baja (Quito), Modificación del contenido. Continuará... ________________________________________________________________________ www.pereyrada.com.ar ©2005 Pereyrada