Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    controllo galleria dinamica: l'enigma!

    ciao a tutti, vi espongo subito il mio problema, cercando di mettervi a conoscenza di tutto quello che penso possa servirvi a capire.

    per un sito che sto facendo ho trovato una galleria dinamica xml, dico trovata perchè nonostante l'argomento mi interessi, purtroppo l'urgenza del cliente non mi lascia il tempo di mettermi a imparare per bene. benchè scrutando tra i vari comandi actionscript sia riuscito a gestire minime modifiche come la grandezza delle immagini o la loro posizione nello stage, ci sono altre modifiche ben più consistenti che non sono in grado di fare.

    la galleria si compone di una piccola finestra ORIZZONTALE a scorrimento con le anteprime, e cliccando su una di queste compare la foto più in grande accompagnata dal testo.
    quel che ho bisogno di ottenere è:
    1)LA FINESTRA CON LE ANTEPRIME SIA ORGANIZZATA VERTICALMENTE E A GRIGLIA (non una immagine per riga, ma 2 o 3)
    2)PERMETTERE ALL'UTENTE DI SALVARE LE IMMAGINI e a tal proposito pensavo facendo un modo che quando clicca sull'immagine gli si apra in una nuova finestra l'immagine così com'è (così come le si trova con google images per dire)


    nella cartella contenente le immagini, i file sono organizzati come "foto1_small", "foto1_big", "foto2_small", "foto2_big", etc... in pratica ad ogni immagine corrispondono 2 file, uno small (per l'anteprima) e uno big.

    l'xml è compilato in questo modo:
    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <images>
    <thumb displayNum="6" separation="5">
    <image>images/foto1</image>
    <description>Descrizione 1</description>
    </thumb>
    <thumb>
    <image>images/foto2</image>
    <description>Descrizione 2</description>
    </thumb>
    </images>


    il file sorgente .fla invece si compone di 3 livelli: "azioni" (contiene solo l'action script per definire la posizione della foto in grande nello stage), "barra" e "box".
    il livello "box" contiene il movieclip "foto_big" con l'effetto trasparenza per visualizzare l'immagine nella galleria. e non c'è niente in actionscript se non lo stop.

    il livello "barra" invece è più complicato. esso contiene il movieclip "Symbol 8", a sua volta composto di diversi livelli:
    "Layer1": contiene le freccine laterali per scorrere le anteprime della galleria (niente actionscript);
    "Thumbs" e relativo livello maschera: contiene la maschera reativa alla finestra delle anteprime e il movieclip "Symbol 11" contenente la casella di testo dove verrà visualizzata la descrizione dell'immagine compilata nel documento xml);
    "info img": contiene tutte le istruzioni in actionscript:


    _level0.portfolio._visible=false;
    // imposta a false se non vuoi la descrizione
    descriptions = true;
    // box descrizione invisibile
    alert._visible = true;
    // effetto ease
    var ease = 5;
    //imposto la scala della foto grande
    _root.scala_x = 100;
    _root.scala_y = 100;
    _root.box.useHandCursor = false;
    //leggo i dati XML
    thumbs = new XML();
    thumbs.ignoreWhite = true;
    thumbs.load("dati.xml");
    // qui inserire il percorso al file .XML
    thumbs.onLoad = function() {
    root = this.firstChild;
    total = root.childNodes.length;
    displayNum = Number(root.childNodes[0].attributes.displayNum);
    separation = Number(root.childNodes[0].attributes.separation);
    //settings
    w = 50;
    h = 50;
    mask._width = displayNum*(w+separation);
    mask._height = h+10;
    forward._x = mask._width-50;
    forward._y = back._y;
    mcs = [];
    for (i=0; i<total; i++) {
    mcs.push(i);
    newThumb = thumbnailer.container.duplicateMovieClip("containe r"+i, i);
    with (newThumb) {
    _x = (w+separation)*i;
    preloader._x = w/2;
    preloader._y = h/2;
    shape._width = w;
    shape._height = h;
    }
    var image = root.childNodes[i].childNodes[0].firstChild.nodeValue;
    var image1 = root.childNodes[0].childNodes[0].firstChild.nodeValue;
    var author1 = root.childNodes[0].childNodes[2].firstChild.nodeValue;
    var desc1 = root.childNodes[0].childNodes[1].firstChild.nodeValue;
    newThumb.image = root.childNodes[i].childNodes[0].firstChild.nodeValue;
    newThumb.desc = root.childNodes[i].childNodes[1].firstChild.nodeValue;
    newThumb.author = root.childNodes[i].childNodes[2].firstChild.nodeValue;
    loadMovie(image1+"_big"+".jpg", _root.box.foto_effetto);
    _root.barra.alert.autore.text = desc1;
    loadMovie(author1, _root.box_autore);
    _root.box._xscale = _root.scala_x*(85/100);
    // scalo la larghezza
    _root.box._yscale = _root.scala_y*(85/100);
    // scalo l'altezza
    newThumb.onRelease();
    newThumb.cont.loadMovie(image+"_small"+".jpg");
    //carico le thumbs
    newThumb.cont2.loadMovie(image);

    //carico le thumbs e le scalo
    newThumb.cont._xscale = 100;
    // scalo la larghezz
    newThumb.cont._yscale = 100;
    // scalo l'altezza delle ombre associate alle immagini
    newThumb.cont2._xscale = newThumb.cont._xscale;
    newThumb.cont2._yscale = newThumb.cont._yscale;
    info.onRelease = function() {
    loadMovie(_root.author, _root._root.box_autore);
    };
    newThumb.onRelease = function() {
    loadMovie(this.image+"_big"+".jpg", _root.box.foto_effetto);
    unloadMovie(_root.box_autore);
    // carico l'immagine nel clip effetto
    _root.box.play();
    // avvio il box
    _root.box._xscale = _root.scala_x*(85/100);
    // scalo la larghezza
    _root.box._yscale = _root.scala_y*(85/100);
    // scalo l'altezza
    _root.author = this.author;
    };
    newThumb.onReleaseOutside = function() {
    this._width = 100;
    this._yscale = 100;
    this._y = this._y+10;
    this._x = this._x+5;
    };
    if (descriptions) {
    newThumb.onRollOver = function() {
    this._xscale = 120;
    this._yscale = 120;
    this._y = this._y-10;
    this._x = this._x-5;
    this.swapDepths(9);
    };

    newThumb.onPress = function() {
    alert.desc = this.desc;
    alert._visible = true;
    };

    newThumb.onRollOut = function() {
    //alert._visible = false;
    this._xscale = 100;
    this._yscale = 100;
    this._y = this._y+10;
    this._x = this._x+5;
    };
    }
    }
    //
    var offset = total-1;
    var dest = 0;
    var increment = w+separation;
    var ending = (total-displayNum)*(w+separation);
    var lastmc = total-1;
    var firstmc = 0;
    back.onRelease = function() {
    if (dest<0) {
    dest += increment;
    } else {
    first = mcs[0];
    for (k=0; k<total; k++) {
    mcs[k] = mcs[k+1];
    }
    mcs[total-1] = first;
    thumbnailer["container"+lastmc]._x = -(w+separation);
    firstmc = lastmc;
    //check whos new lastmc
    for (k=0; k<total; k++) {
    if (mcs[k] == (total-1)) {
    lastmc = k;
    }
    }
    }
    };
    forward.onRelease = function() {
    if (dest>-ending) {
    dest -= increment;
    } else {
    last = mcs[total-1];
    for (k=1; k<total; k++) {
    mcs[total-k] = mcs[total-k-1];
    }
    mcs[0] = last;
    thumbnailer["container"+firstmc]._x = (displayNum)*(w+separation);
    lastmc = firstmc;
    //check whos new firstmc
    for (k=0; k<total; k++) {
    if (mcs[k] == 0) {
    firstmc = k;
    }
    }
    }
    };
    //movement
    onEnterFrame = function () {
    for (j=0; j<total; j++) {
    thumbnailer["container"+j]._x += (dest+(mcs[j])*(w+separation)-thumbnailer["container"+j]._x)/ease;
    }
    //alert._x = _xmouse;
    //alert._y = _ymouse;
    };
    };


    e infine c'è un livello vuoto, "Layer 6".

    Credo di avervi detto tutto e ringrazio già chiunque sia arrivato a leggere fin qui.
    Lo so che è tanto, ma penso che siano info necessarie per farvi comprendere la situazione.

    Dalla mia disperazione vi chiedo se c'è qualcuno che possa aiutarmi e vi ringrazio!

  2. #2
    Puoi condividere il file (anche l'esempio che hai scaricato ) così forse vedendolo su flash capisco meglio?

  3. #3
    volentieri, ma non ho idea di come farlo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.