// sometimes I believe compiler ignores all my comments
———————————————————————————-
// I dedicate all this code, all my work, to my wife, Darlene, who will
// have to support me and our three children and the dog once it gets
// released into the public.
———————————————————————————-
return 1; # returns 1
———————————————————————————-
//When I wrote this, only God and I understood what I was doing
//Now, God only knows
———————————————————————————-
/*
* You may think you know what the following code does.
* But you dont. Trust me.
* Fiddle with it, and youll spend many a sleepless
* night cursing the moment you thought youd be clever
* enough to “optimize” the code below.
* Now close this file and go play with something else.
*/
———————————————————————————-
/**
* For the brave souls who get this far: You are the chosen ones,
* the valiant knights of programming who toil away, without rest,
* fixing our most awful code. To you, true saviors, kings of men,
* I say this: never gonna give you up, never gonna let you down,
* never gonna run around and desert you. Never gonna make you cry,
* never gonna say goodbye. Never gonna tell a lie and hurt you.
*/
———————————————————————————-
//
// Dear maintainer:
//
// Once you are done trying to ‘optimize’ this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 16
//
———————————————————————————-
//This code sucks, you know it and I know it.
//Move on and call me an idiot later.
———————————————————————————-
//I am not sure why this works but it fixes the problem.
———————————————————————————-
# However, this only works if there are MULTIPLE checkboxes!
# The f*cking JS DOM *changes* based on one or multiple boxes!?!?!
# Damn damn damn I hate the JavaScript DOM so damn much!!!!!!
Este es un ejemplo sencillo para entender como funcionan las clases en Actionscript 3.
Es muy parecido a lenguaje C, y como sabemos AS3 es un lenguaje que viene principalmente para trabajar con OOP, asi que es mejor aconstumbrase a utlizar clases, para aquellos que aun no les gusta … xD
Package: /root del documeto
Clase: Saludo
Propiedades:
nombre - Declaro la variable nombre que va a ser utilizada en el saludo
Metodos:
Saludo() constructor de la clase - crea una nueva instancia de la clase; un parametro opcional va a ser pasado a la funcion para inicializar el nombre que va en el saludo.
darSaludo() - recibe el parametro apellido, y retorna un String que contiene el texto del saludo.
En codigo se veria asi:
package{
public class Saludo{
//propiedades
public var nombre:String;
//Constructor
public function Saludo(nombreActual:String = ""){
//setear el valor si lo pasan de parametro
}
//metodos
public function darSaludo(apellido:String):String{
//crear el texto del saludo y retornalo
}
}
}
Ahora vamos a armar los 2 archivos necesarios para correr el codigo
Creamos Saludos.as
package{
public class Saludo{
public var nombre:String;
public function Saludo(nombreActual:String = ""){
this.nombre = nombreActual;
}
public function darSaludo(apellido:String):String{
var respuesta:String;
respuesta = "Hola " + this.nombre + " " + apellido + "!!!";
return respuesta;
}
}
}
Ahora creamos el archivo simpleSaludo.fla
Creamos un archivo nuevo de flash con actionscript 3
Seleccionamos la herramienta texto y agregamos un campo de texto en el area de trabajo.
Luego a ese campo de texto le colocamos en las propiedades, el nombre de instancia texto.
Creamos una nueva capa en el documento, que va a contener el siguiente codigo actionscript:
import Saludo;
var miSaludo:Saludo = new Saludo("alex");
texto.text = miSaludo.darSaludo("Valera");
Tips a la hora de crear una clase:
El nombre de la clase es el mismo nombre del archivo .as. En el ejemplo la clase se llama Saludo y el archivo Saludo.as
La linea import Saludo; no es necesaria silos 2 archivos estan sueltos en el root.
Si el archivo .as se encuentra dentro de un directorio ejemplo /carpeta1/carpeta2/archivo.as
se debe hacer lo siguiente:
en el .as la linea package seria asi “package carpeta1.carpeta2″ y en el .fla seria “import carpeta1.carpeta2.Saludo“
Las librerías XML han sido completamente optimizadas en actionscript 3. Estas utilizan un sistema llamado ECMAScript para XML (E4X), que hace que sea mucho mas fácil, el trabajo que con las herramientas que brinda actionscript 2.
La manera en la que cargamos archivos XML externos, o cualquier cosa que tenga que ver con cargar archivos en las películas de flash, han cambiado dramáticamente.
En AS2 creamos un objeto XML y luego llamamos el método XML.load() para cargar un archivo externo. En AS3 se utiliza la nueva clase URLLoader para cargar archivos XML externos.
//Inicializamos el objeto XML
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlData.ignoreWhite = true;
//Cargamos el archivo XML
xmlLoader.load(new URLRequest("libros.xml"));
//En el evento COMPLETE llamamos a la funcion LoadXML
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
function LoadXML(e:Event):void {
var titu:String;
xmlData = new XML(e.target.data);
for(var i:int=0; i<xmlData.libro.length(); i++){
resultados_mc.appendText(xmlData.libro[i].titulo.toString()
+ "\n" + xmlData.libro[i].autor.toString() + "\n\n" );
}
}
Este código es muy útil, cuando se necesita obtener todos los elementos de un tipo, ya sea dentro de toda la pagina o dentro de un área especifica.
Por ejemplo, podríamos capturar como abjetos, todos los enlaces que se encuentren en un div y cambiar o utilizar sus atributos (href, class, id, name…).
Una de las mejores galerias que e usado, te permite mostrar las imagenes o contenido de diferentes maneras.
Soporta lightbox o en una ventana con drag y controles para las imagenes.