Taller Webmaster

Tutoriales para Webmasters

Bienvenido a Taller Webmaster, donde encontrarás la mejor información sobre tutoriales y recursos para webmasters!

Ingreso de Usuario

Recuperar contraseña

Registro de Usuario

Publicidad

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 tongue.gif

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 biggrin.gif Me interesa saber que piensan los usuarios

Comentarios de Precarga Dinamica en Action Script

↑ Tutorial

  • nemesis

    nemesis

    2006-12-11 03:47

    Tan rudo ke no se entiende,en la parte de insertar simbolo, escomo grafico o clip depelicula?, al final es crear nueva escena o nueva capa!!!??
  • Kaiman

    Kaiman

    2007-11-05 10:46

    Hola, soy un novato en esro del ActionScript , uso el Flash para mis presentaciones y menus, lo demas lo dejo en php y javascript, y tengo un problema que seguro no sera nada para alguien como vosotros...

    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?