Pereyrada Newsletters #2 Indice 1. Palabras del editor 2. ActionScript (Desigualdades e Igualdades Estrictas) 3. Clases (Array I) ________________________________________________________________________ 1. Palabras del editor ======================= Mi agradecimiento a los e-mails recibidos con sus elogios por el primer newsletters. Como novedad muy importante es la venta de Macromedia a la empresa Adobe. La cifra 3,4 billones de euros, claro que algo así esta mas alla de lo que uno puede saber o pensar. Porque se vendió?, que pasara con flash?. Personalmente creo que se unieron fuerzas ya que Macromedia gano un puesto de permanencia que no creo que se abandone así como así, además hace meses leí que MS estaba por lanzar algo similar a flash. Mas allá de eso creo que es para bien, y que los productos de Macromedia aún tienen mucho camino por recorrer, ni hablar de flash. Tan solo pensar que entro de lleno en el terreno de los celulares... nos indica que pronto estaremos pensando en desarrollar paginas web mas pequeñas, otro cambio radical de pensamiento. Como lo fue para mi en una época pasar del D.O.S. a Windows. Bien, cambiando de tema les aviso que en www.pereyrada.com.ar se siguen agregando tutoriales. Además estamos organizando una reunión "informal" de flasheros para intercambiar experiencias, donde podrán participar tanto los que recién comienzan como aquellos que ya tienen un largo recorrido con flash. La idea es intercambiar experiencias sobre el amplio uso de este producto de Macromedia. Ya le avisaremos oportunamente del lugar, fecha y horario. Saludos A. Daniel Pereyra ________________________________________________________________________ 2. ActionScript (Desigualdades e Igualdades Estrictas) ====================================================== Generalmente cuando usamos ActionScript nos encontramos que debemos tomar decisiones lógicas en base al contenido de una variable. De que hablo? Nunca te paso que si la variable A es diferente a 1 debo ir a un determinado frame (cuadro) caso contrario hago otra cosa... Esto sería como este script: if(A<>1){ loadMovie("aviso.swf",2); }else{ gotoAndPlay(20); } Bueno, puede que para algunos se medio complicado, pero tranquilos, el uso de if lo veremos mas adelante en detalle. Algo que debemos tener en cuenta es que las variables que contienen números, cadenas o valores booleanos (true/false) se comparan por valor mientras que las variables, objetos y funciones se comparan por referencia. Continuemos... Bien, podemos usar <> para buscar la desigualdad o también podemos poner !=, es decir que sería lo mismo escribir el siguiente ActionScript: if(A!=1){ loadMovie("aviso.swf",2); }else{ gotoAndPlay(20); } Hasta acá todo bien, pero resulta que nos encontramos con algo interesante. Macromedia lo llama "desigualdad estricta", que es esto? Bien también sirve para encontrar desigualdad solo que no convierte los tipos de datos, veamos un ejemplo... Desigualdad A="1" if(A!=1){ trace("No era 1, es:"+A); }else{ trace("Bingo!!, es un 1"); } stop(); Si... aparece BINGO!!!.... ahora probemos esto.. A="1" if(A!==1){ trace("No era 1, es:"+A); }else{ trace("Bingo!!, es un 1"); } stop(); Sale la leyenda "No era 1, es:1", estamos locos?.. no, lo que pasa que no convirtió la variable A de string (cadena de caracteres) a numérico. Y esto me sirve?, si, especialmente cuando necesito que la variable comparada contenga un valor real buscado. Yo lo tendría en cuenta, especialmente cuando proceso información proveniente de alguna base de datos. Claro que este tema no termina acá, también existe la igualdad estricta, veamos el siguiente ActionScript: A="1!; if(A==1){ trace("Bingo!!, es un 1"); }else{ trace("No era 1, es:"+A); } stop(); Y ahora proba este ejemplo... A="1!; if(A!==1){ trace("Bingo!!, es un 1"); }else{ trace("No era 1, es:"+A); } stop(); No hay mucho mas que decir... solo hay que ponerlo en práctica. ________________________________________________________________________ 2. Clases (Array I) =================== Bueno, esto si que da para hablar... un Array, ni mas ni menos, claro que también podemos llamarlo matriz. La clase "Array" permite acceder a matrices y manipulearlas de una forma muy interesante. Un ejemplo?, claro... imagine ingresar un listado de n elementos alfanuméricos y tener que ordenarlos alfabéticamente... solución?.. Array!!! Ya se te ocurrió otro uso?.. si.. claro.. da para mucho. Las propiedades del Array se identifican con un número que representa su posición en la matriz. A este número lo vamos a llamar "índice". Que digo con esto del índice, bueno que para acceder al primer elemento de la matriz debo escribir [0],[1],[2].. y así sucesivamente. Al leer esto puede pasar que inmediatamente abramos un documento de Macromedia Flash y pongamos algo así: miarray[0]=100; miarray[1]=20; miarray[2]=50; miarray[3]=80; trace(miarray[0]); trace(miarray[1]); trace(miarray[2]); trace(miarray[3]); stop(); y claro... flor de sorpresa.. solo conseguimos ver 4 "undefined" (indefinido) como resultado, esto pasa porque debemos "crear" el Array con la función "new". New es un constructor, pero después hablamos de esto... Así que teniendo esto en cuenta solo debemos agregar una línea a nuestro ActionScript... miarray = new Array(); Ahora si.. funciona!! Pero uno no puede con su genio y tiene que probar algunas variaciones, veamos este ActionScript: miarray= new Array(100,20,50,80); trace(miarray[0]); trace(miarray[1]); trace(miarray[2]); trace(miarray[3]); stop(); Funciona, pero para que lo uso?, bueno yo creo que en el primer caso podemos almacenar dinámicamente valores mientras que en el segundo me serviría para parametrizar algo... ya veremos... Por último podemos definir la longitud de un Array y crear una matriz con n elementos vacíos... se complico! El siguiente ejemplo crea un Array con una longitud inicial de 3 elementos vacíos. miarray = new Array(3); Particularmente no encontré una aplicación real, más si aun definiendo la matriz de esta forma después puedo seguir agregando elementos.... si alguien encontró una aplicación por favor mande un email. Sigamos... Los "métodos" de esta "clase", menos mal que hablamos de objetos en el primer newletter, son los siguientes: Array.concat() Concatena los parámetros y los devuelve como una matriz nueva. Array.join() Une todos los elementos de una matriz en una cadena. Array.pop() Elimina el último elemento de una matriz y devuelve su valor. Array.push() Agrega uno o más elementos al final de una matriz y devuelve la nueva longitud de la matriz. Array.reverse() Invierte la dirección de una matriz. Array.shift() Elimina el primer elemento de la matriz y devuelve su valor. Array.slice() Extrae una sección de una matriz y la devuelve como nueva matriz. Array.sort() Ordena una matriz. Array.sortOn() Ordena una matriz según un campo de la matriz. Array.slice() Agrega y elimina elementos de la matriz. Array.toString()Devuelve un valor de la cadena que representa los elementos del objeto Array. Array.unshift() Agrega uno o más elementos al principio de la matriz y devuelve la nueva longitud de la matriz. Array tiene una sola "propiedad"... Array.length Número entero que no es base cero y especifica el número de elementos que contiene. Y antes de culminar un dato curioso.... prueben esto: miarray=[]; trace(miarray[0]); trace(miarray[1]); trace(miarray[2]); trace(miarray[3]); stop(); y vean si funciona... Continuará... ________________________________________________________________________ www.pereyrada.com.ar ©2005 Pereyrada