Foros > Flash y Actionscript: no me funciona archivo swf

  1. najwa66

    Mensajes [1] - Enviado el Domingo 26 de Abril de 2009 a las 16:44hs

    Tengo una galeria de imagenes que se cargan desde un archivo xml , cuando la publico dentro del programa flash todo funciona y carga correctametne las imágenes, pero cuando abro el archivo swf generado, las imágenes no aparecen, los otros componentes del flash, ya no entiendo nada y necesito ayuda urgentemente. gracias
    Os adjunto el código
    // acciones en fotograma 1
    this._lockroot = true;
    stop();

    //salida Esta es mi película principal;
    System.useCodepage = true;
    XML.prototype.ignoreWhite = true;
    import mx.transitions.Tween;
    // separacion-> distancia entre las imágenes
    // tanto horizontal como vertical
    var separacion:Number = 116;
    // vbles para pasar de página
    var pagina_actual:Number = 1;
    var num_paginas:Number;
    // array donde metemos los elementos del XML
    var IMG_array:Array;
    // objeto XML que carga la lista de miniaturas
    var miniaturasXML:XML = new XML();
    miniaturasXML.onLoad = mostrarMiniaturas;
    miniaturasXML.load("verMiniaturas.xml");
    // funcion que se ejecuta al cargar el XML
    function mostrarMiniaturas():Void {
    // contadores de columna y fila para
    // disponer las miniaturas
    var fila:Number = 1;
    var col:Number = 0;
    // paso los datos del XML al array
    IMG_array = this.firstChild.childNodes;

    // saber el núm de páginas necesarias para
    // mostrar todas las fotos
    num_paginas = Math.ceil(IMG_array.length/3);
    // creo el clip donde meteremos todas las miniaturas
    var lienzo:MovieClip =createEmptyMovieClip("lienzo_miniaturas", getNextHighestDepth());
    // lo posiciono donde nos conviene
    lienzo._x =351;
    lienzo._y = 10;
    // y lo enmascaro con el clip situado en la
    // capa mascara. se enmascara para hacer el deslizamiento del
    // clip cuando tengamos muchas miniaturas y no entren todas a
    // la vez en pantalla (nuestro caso)
    lienzo.setMask(mascara_mc);
    // recorro el array que contiene la lista con los nombres de
    // los archivos de las miniaturas e invoco la función crearMiniatura
    // que es la que carga la imagen, la recoloca, le pone un pequeño
    // marco y le asigna las acciones para verla ampliada
    for (var k:Number = 0; IMG_array[k]; k++) {
    // extraigo la ruta del archivo de imagen
    //var ruta:String = "minis/"+IMG_array[k].attributes.nombre;
    // como sólo tengo tres columnas, cuando llegue a
    // la tercera, avanzo una fila y retorno a la primera
    //if (col>2) {
    //col = 0;
    //fila++;
    //}
    // creo la miniatura. extraigo la ruta del archivo de imagen
    // y la paso como tercer parámetro
    crearMiniatura(col, fila, IMG_array[k].attributes.nombre);
    col++;
    }
    }

    function crearMiniatura(columnaF:Number, filaF:Number, ruta:String) {
    // bajo_clip es el clip que contendrá el marco de la miniatura
    var bajo_clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("bajo_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());
    // clip contendrá la imagen
    var clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("foto_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());
    // para cargar la miniatura definimos un objeto MovieClipLoader
    // y un objeto detector de eventos
    var mi_mcl:MovieClipLoader = new MovieClipLoader();
    var miListener:Object = new Object();
    mi_mcl.addListener(miListener);
    clip.valor = "";
    // cargamos la imagen
    mi_mcl.loadClip("/minis/bones.jpg", clip);
    miListener.onLoadStart = function(target_mc:MovieClip) {
    // cuando comienza la carga de la imagen
    // ponemos al _alpha a 0
    target_mc._alpha = 100;
    };

    miListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
    // aquí podéis poner acciones para mostrar una precarga,
    // este caso no lo hemos considerado oportuno
    };
    // cuando ya se ha completado la carga y tenemos disponible el clip

    miListener.onLoadInit = function(target_mc:MovieClip) {
    // recolocamos la imagen (todavía está oculta, con _alpha=0)
    target_mc._x = (separacion*columnaF)+(100-target_mc._width)*0.5;
    target_mc._y = (separacion*filaF)+(100-target_mc._height)*0.5;
    // recolocamos el marco que rodea a la foto
    bajo_clip._x = target_mc._x-5;
    bajo_clip._y = target_mc._y-5;
    // dibujamos el marco
    with (bajo_clip) {
    beginFill(0xffffff);
    lineStyle(1, 0xEEEEEE, 100);
    lineTo(target_mc._width+10, 0);
    lineTo(target_mc._width+10, target_mc._height+10);
    lineTo(0, target_mc._height+10);
    lineTo(0, 0);
    endFill();
    }
    // al pinchar sobre el área del marco,
    // mostramos la foto grande con la función
    // verFotoGrande
    bajo_clip.onRelease = function() {
    verFotoGrande(ruta);
    };
    // muestro la miniatura animando el _alpha hasta 100
    var myTween:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true);
    };
    }

    function verFotoGrande(ruta:String) {
    clearInterval(intervaloColor);
    // creo el clip donde irá la foto grande en una profundidad fija
    // para que se reemplace cada vez que pincho en una miniatura
    var grande:MovieClip = createEmptyMovieClip("grande_mc", 2*IMG_array.length+11);
    // igual con el clip que contendrá el marco
    var bajo_grande:MovieClip =createEmptyMovieClip("bajo_grande_mc", 2*IMG_array.length+10);
    // posición vertical fija
    grande._y = 150;
    // para cargar la foto grande definimos otro objeto MovieClipLoader
    // y otro objeto detector de eventos
    var grande_mcl:MovieClipLoader = new MovieClipLoader();
    var grandeListener:Object = new Object();
    grande_mcl.addListener(grandeListener);
    // cargo la foto grande
    grande_mcl.loadClip("/originales/"+ruta, grande);
    grandeListener.onLoadStart = function(target_mc:MovieClip) {
    // aplico una transformación de color que deja el clip
    // tintado de blanco
    myColor = new Color(target_mc);
    myColorTransform = new Object();
    myColorTransform = {ra:100, rb:255, ga:100, gb:255, ba:100, bb:255, aa:100, ab:0};
    myColor.setTransform(myColorTransform);
    };
    grandeListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
    // aquí podéis poner acciones para mostrar una precarga,
    // este caso no lo hemos considerado oportuno
    };
    grandeListener.onLoadInit = function(target_mc:MovieClip) {
    // recolocamos la imagen (todavía está oculta)
    target_mc._x =32+Math.round((315-target_mc._width)*0.5);
    // recolocamos el marco que rodea a la foto grande
    bajo_grande._x = target_mc._x-5;
    bajo_grande._y = target_mc._y-5;
    // dibujamos el marco
    with (bajo_grande) {
    beginFill(0xffffff);
    lineStyle(1, 0xEEEEEE, 100);
    lineTo(target_mc._width+10, 0);
    lineTo(target_mc._width+10, target_mc._height+10);
    lineTo(0, target_mc._height+10);
    lineTo(0, 0);
    endFill();
    }
    // con estas rutinas hacemos la transición de color desde el blanco
    var indiceColor:Number = 255;
    intervaloColor = setInterval(cambiarColor, 10);
    function cambiarColor() {
    myColorTransform = {ra:100, rb:indiceColor, ga:100, gb:indiceColor, ba:100, bb:indiceColor, aa:100, ab:0};
    myColor.setTransform(myColorTransform);
    indiceColor -= 2;
    if (indiceColor == -1) {
    clearInterval(intervaloColor);
    }
    }
    };
    }
    // con esta función desplazo el lienzo de las miniaturas para
    // pasar de página
    // con esta función desplazo el lienzo de las miniaturas para
    // pasar de página
    function moverLienzo(posX:Number):Void {
    var myTween:Tween = new Tween(lienzo_miniaturas, "_x", mx.transitions.easing.Regular.easeOut, lienzo_miniaturas._x, posX, 1, true);
    }
    // deshabilito de inicio el botón de volver atrás
    // ya que se muestra la página 1
    pMenos_btn.enabled = false;
    pMenos_btn._alpha = 30;

    ////////////////////este es el codigo de los botones
    on (release) {
    // activo el botón página-
    pMenos_btn.enabled = true;
    pMenos_btn._alpha = 100;
    moverLienzo(100-(pagina_actual*351));
    pagina_actual++;
    // si llego a la última página
    // ya no puedo avanzar, por tanto
    // deshabilito el botón
    if (pagina_actual == num_paginas) {
    pMas_btn.enabled = false;
    pMas_btn._alpha = 30;
    }
    }
    on (release) {
    // activo el botón página+
    pMas_btn.enabled = true;
    pMas_btn._alpha = 100;
    moverLienzo(100-(pagina_actual-2)*351);
    pagina_actual--;
    // si llego a la primera página
    // ya no puedo retroceder, por tanto
    // deshabilito el botón
    if (pagina_actual == 1) {
    pMenos_btn.enabled = false;
    pMenos_btn._alpha = 30;
    }
    }


responder

Para poder responder a este tema tenes que ingresar. Si no tenes una cuenta podes registrarse gratis..

publicidad

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API