Precarga Dinamica en Action Script
Tutorial Photoshop
Tutorial por Solo Photoshop
SoloPhotoshop
Precarga Dinamica en Action Script Flash
Tutoriales Adobe Flash
por Kitsch de Foro Creativo
Alguien me preguntaba hace no mucho que ventajas tendría el ActionScript 3.0 sobre el ActionScript 2.0, le explicaba las ventajas y me pregunto inocentemente que si ahora si, ActionScript seria un lenguje orientado a objetos!!! Me senti un poco ofendido, pues soy de los principales defensores del flash y su lenguaje de scripts...
Despues de un rato, me comentaba que con flash ni siquiera eran posibles hacer una simple precarga dinamica de multiple interpreatacion que respetara clases y actuara de forma bifucarda y antes de entrar en el show de lo que vendra con el AS 3 (que proximamente traere unos tutos sobre ello), desidi hacer un tutorial demostrando lo contrario (bueno una estraccion del codigo que estoy usando para la web de mi migocha Nike) y aqui se los dejo.
function g() { //declaramos la funcion en el primer fotograma
var total:Number, cargados:Number, porcentaje:Number;
//por buena constumbre declaras todas las variables a usar
//nota: las variables simples
//estas lineas ya las he explicado antes
total = _root.getBytesTotal();
cargados = _root.getBytesLoaded();
porcentaje = Math.floor((cargados*100)/total);
porcentaje_txt.text = porcentaje+" %";
barra_mc.gotoAndStop(porcentaje);
if (cargados == total) {
carga_txt.text = "Ejecutando programa";
clearInterval(hiloPrecarga);
play();
//Hasta esta linea es un cargador comun y popular
}
//Creamos un bucle condicional switch que es la estructura de nuestra
//precarga interactiva
switch (porcentaje) { //cuando porcentaje sea igual a
case 10 ://igual a 10, cree un texto en la varible dinamica carga_txt
carga_txt.text = "Iniciando descarga";
break;
case 20 : //igual a 20
var images:Object; //variable imagenes, se declara "object" por ser
//una clase independiente
load.AllPictures(nodeClass1); //clase Pictures(), hereda muchas propiedades
//de la clase MovieClip() e images() de AdobeLabd();
carga_txt.text = "Descargado imagenes";//escriba un texto
break;
case 30 : //igual a 30
function cargarXML() {//Creamos una funcion
var obj_xml:XML;
//Invoca a la función "load" del objeto XML
//para cargar nuestro contenido XML
obj_xml.load("xmlMain.xml");//cargamos nuestro archivo XML
}
carga_txt.text = "Descargando XML";//escrimos un texto que vera el usuario
case 40 :
var actions:Object; //al igual que en un caso anterior, creamos una variable de objetos
actions.load("clasesMain.as");//El objeto se define y carga en el archivo clasesMain.as
carga_txt.text = "Cargando scripts";//escriba un texto
break;
case 50 :
onLoad(allXML).tradutorXML(parent, GET, SQLReference);
//una vez cargados los archivos de clases y los XML firmados en xmlMain.xml
//ejecutamos la funcion "traductorXML con la propiedades y aplicaciones
//que se definen en una ruta de parent, con un metodo GET y con la referencia
//firmada en SQLReference de AdobeLabs.
traductorXML.read(allXML_Class);
//read es una funcion heredada del archivo xmlRespuestas.as, indicado en el archivo
//clasesMain.as; el cual interpretara todas las estructuras conocidas y definidas
//de todos los archivos XML
carga_txt.text = "Leyendo XML";//escriba un texto
break;
case 60 :
traductorXML.text(allClassLoaded);
//Imprimira en el documento de salida (muy similara a echo en PHP) el resultado
//del proceso de traduccion de los XML y sus subyegados y adyacentes
carga_txt.text = "Ejecutando XML";//escriba un texto
break;
case 70 :
playerType = true; //una mini funcion definida en otro archivo de clases
carga_txt.text = "Detectanto resolucion"; //escriba un texto
break;
case 80 :
run(SubClass.execSubProgram[ASPentries&SQL_Querys]);
//run como en casos anteriores ejecutara lo que se conoce como subprograma
//que finalmente no lo es, pero se interpreta como tal, pues es una conjugacion
//de varios elementos y clases que se ejecutaran basados en ciertas instrucciones
//muy similar a cualquier exe de win
carga_txt.text = "Iniciando sub programa"; //escriba un texto
break;
case 90 :
carga_txt.text = "Terminando pre carga"; //escriba un texto
break;
}
_root.total_txt.text = total; //escribe el total del peso del SWF
_root.cargados_txt.text = _root.getBytesLoaded(); //escribe lo cargado hasta el momento
}
var hiloPrecarga = setInterval(g, 1);
stop();
Editado: Gracias Sapinto por la observacion; un error de dedo
El script es muy "rudo" y desde luego hacen falta las clases que mensiono y las consultas que solicito, pero no es importante, el caso es mostrar que se pueden crear multiples aplicaciones con flash al igual que con cualquier programa. Finalmente este no es un tutorial, si no un ejemplo de uso.
Dudas y comentarios aqui mismo Me interesa saber que piensan los usuarios
Comentarios de Precarga Dinamica en Action Script
↑ Tutorial
nemesis
2006-12-11 03:47
Kaiman
2007-11-05 10:46
tengo este codigo pero no me funciona:
stop();
//import flash.events.*;
import flash.text.TextFieldAutoSize;
function onLoadPreload(e:Event):void {
preloader.pbar.scaleX = 0;
preloader.stat.autoSize = TextFieldAutoSize.CENTER;
}
function onEnterFramePreload(e:Event):void {
var Cargados:uint = this.root.loaderInfo.bytesLoaded;
var Porcargar:uint = this.root.loaderInfo.bytesTotal;
preloader.pbar.scaleX = Cargados/Porcargar;
preloader.stat.text = "Cargando: "+Cargados+" B Por Cargar: "+Porcargar+" B";
if (Cargados==Porcargar) {
preloader.removeEventListener(Event.ACTIVATE,onLoadPreload);
preloader.removeEventListener(Event.ENTER_FRAME,onEnterFramePreload);
this.play();
}
}
preloader.addEventListener(Event.ACTIVATE,onLoadPreload);
preloader.addEventListener(Event.ENTER_FRAME,onEnterFramePreload);
Se para justo en el frame anterior a la donde enpieza la escena 2, si lo corro un frame la escena 2 lo hace tambien (esto se ve en la ventana de prueba del flash), la cosa es que si en la escena 1 de de la precarga en la capa uno en el ultimo frame le quitom el stop(); que hace que el preloader no se repiota si funciona... algo curioso... alguien me puede ayudar?