Estás en: Inicio >> Foros >> Informática >> Webmasters
Webmasters /

Flash: Cargar swf externo - aleatorio

Participa en el tema Flash: Cargar swf externo - aleatorio en el foro Webmasters.
Hola que tal, tengo creado un swf "header" que llama a otro swf externo "carga" ...

Buscar en este tema:
 
  •  
    #1 Flash: Cargar swf externo - aleatorio
    Hola que tal, tengo creado un swf "header" que llama a otro swf externo "carga" que solamente tiene una rutina que va cargando aleatoriamente los swf "pub1" "pub2" etc...
    En el frame 160 del header tengo este código:

    var contenedor = new Loader();
    contenedor.load(new URLRequest("http://www.vendamoshoy.com/home/templates/ja_shopping_ii/carga.swf"));
    addChild(contenedor);
    contenedor.x = 545
    contenedor.y=5


    El archivo carga contiene este código en el 1er frame:


    //Importo las clases necesarias
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.URLRequest;

    //Carga la imagen
    function CargarSwf(url) {
    //Creo el objeto cargador
    var loader:Loader = new Loader();
    //Le añado los listeners
    ponerListeners(loader.contentLoaderInfo);
    //Creo el objeto que contendrá la petición
    var peticion:URLRequest = new URLRequest(url);
    //Cargo la petición
    loader.load(peticion);
    }

    //Añade los listeners al cargador
    function ponerListeners(dispatcher:IEventDispatcher):void {
    dispatcher.addEventListener(Event.COMPLETE, completeHandler);
    dispatcher.addEventListener(HTTPStatusEvent.HTTP_S TATUS, httpStatusHandler);
    dispatcher.addEventListener(Event.INIT, initHandler);
    dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
    dispatcher.addEventListener(Event.OPEN, openHandler);
    dispatcher.addEventListener(ProgressEvent.PROGRESS , progressHandler);
    }

    //Funcion que se ejecuta cuando termina la descarga.
    function completeHandler(event:Event):void {
    trace("completeHandler: " + event);
    addChild(event.target.content);
    }

    //Se ejecuta al recibir un código de estado HTTP
    function httpStatusHandler(event:HTTPStatusEvent):void {
    trace("httpStatusHandler: " + event);
    }

    //Se distribuye cuando las propiedades del objeto cargado están disponibles
    //A partir de su distribucion podriamos modificar el objeto (ancho, escala, etc)
    function initHandler(event:Event):void {
    trace("initHandler: " + event);
    }

    //Se ejecuta cuando hay un error de entrada/salida, por ejemplo, al intentar cargar un
    //archivo inexistente
    function ioErrorHandler(event:IOErrorEvent):void {
    trace("ioErrorHandler: " + event);
    }

    //Se ejecuta cuando comienza la operación de carga
    function openHandler(event:Event):void {
    trace("openHandler: " + event);
    }

    //Se ejecuta periodicamente mientras dura la carga
    function progressHandler(event:ProgressEvent):void {
    trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
    }

    //Empezamos
    CargarSwf("http://www.vendamoshoy.com/home/templates/ja_shopping_ii/publicidad/pub"+Math.ceil(Math.random()*3)+".swf");


    Ok. Hasta ahí funciona todo bien. lo que yo quiero hacer es que vaya cambiando de archivo cuando termina la película. Hasta ahora lo que pude hacer es tener todos los swf "pub.." de la misma cantidad de frames y en el archivo header le sumo esa cantidad de frames desde que lo cargo y llamo a este código:


    this.removeChild(contenedor); //elimino el clip anterior
    gotoAndPlay(160); //cargo otro


    El problema viene cuando tenga que cargar algun swf con mayor cantidad de frames ya que el this.removeChild(contenedor) me cortaría la película..

    Estuve viendo que en el último frame de todos los archivos "pub.." se podría eliminar el contenedor y volver al frame 160 del header por medio de _parent pero no se como se usa..

    Alguna otra solución?..

    Gracias..
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: Flash: Cargar swf externo - aleatorio

    Qué acción desencadenas cuándo llegás al frame 160?
    No tenés necesidad de especificar un número cuando
    usas labels para los frames desde el panel de propiedades:
    sería algo así gotoAndPlay/Stop("mi_label_en_Frame_especifico")

    Y si es aleatorio, igual que en php, tenés que usar la función random()
    para elegir entre los elementos de un array.
    Me gusta este mensaje
  • #3 Re: Flash: Cargar swf externo - aleatorio

    Sería más o menos así:

    swf principal: frame 160 --> cargo el random de publicidades --- frame 161 --> stop(); 'para que no me repita la animación principal.

    swf publicidad: último frame --> vuelvo al frame 162 del swf principal -parent-.

    swf principal: frame 162 --> elimino la publicidad y vuelvo al frame 160 para cargar otra.

    La idea es que las publicidades cambien sin actualizar la página.
    Y lo que no sé como codificar es que vuelva al principal -parent- en el último frame de las publicidades.
    Me gusta este mensaje
  • #4 Re: Flash: Cargar swf externo - aleatorio

    Sabría cómo hacerlo, pero en AS 2.0
    Fijate en el foro de Cristalab, que son muy buenos...
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Webmasters


Estadísticas del tema
  • 3 RESPUESTAS
  • 540 VISTAS
  • 2 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB