• User Newbie

    HELP Actionscript Modifica semplice.

    Ciao,
    sono nuovo del forum, nuovissimo e non scrivo normalmente nè qui ne nei forum, quindi sperimento per la prima volta.

    Ho una semplicissima gallery scritta in actionscript che si lega ad una cartella immagine con xml.

    Ho un movieclip con istanza "picture" dove mi carica le immagini dalla cartella, il problema è che me le carica aprendole, dalla posizione del movieclip (che in realtà è un punto) partendo dall'angolo in'alto a sinistra di ogni immagine.
    E' difficile spiegarlo a parole ed immagino che si capisca ben poco di quello che ho scritto. :gtsad:

    A me comunque interesserebbe far si che quel movieclip, quel punto dove mi carica le immagini, sia in realtà il centro di ogni immagine, così da posizionarlo al centro del frame ed ogni immagine venga caricata centrata, a prescindere dalla sue misure e dimensioni.

    Riporto le uniche azioni che ho su un livello action:

    *function loadXML(loaded) {

    if (loaded) {

    xmlNode = this.firstChild;
    image = [];
    description = [];
    total = xmlNode.childNodes.length;
    for (i=0; i<total; i++) {

    image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue;
    description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;

    }
    firstImage();

    } else {

    content = "file not loaded!";

    }

    }
    xmlData = new XML();
    xmlData.ignoreWhite = true;
    xmlData.onLoad = loadXML;
    xmlData.load("images.xml");
    /////////////////////////////////////
    listen = new Object();
    listen.onKeyDown = function() {

    if (Key.getCode() == Key.LEFT) {

    prevImage();

    } else if (Key.getCode() == Key.RIGHT) {

    nextImage();

    }

    };
    Key.addListener(listen);
    previous_btn.onRelease = function() {

    prevImage();

    };
    next_btn.onRelease = function() {

    nextImage();

    };
    /////////////////////////////////////
    p = 0;
    this.onEnterFrame = function() {

    filesize = picture.getBytesTotal();
    loaded = picture.getBytesLoaded();
    preloader._visible = true;
    if (loaded != filesize) {

    preloader.preload_bar._xscale = 100*loaded/filesize;

    } else {

    preloader._visible = false;
    if (picture._alpha<100) {

    picture._alpha += 10;

    }

    }

    };
    function nextImage() {

    if (p<(total-1)) {

    p++;
    if (loaded == filesize) {

    picture._alpha = 0;
    picture.loadMovie(image[p], 1);
    desc_txt.text = description[p];
    picture_num();

    }

    }

    }
    function prevImage() {

    if (p>0) {

    p--;
    picture._alpha = 0;
    picture.loadMovie(image[p], 1);
    desc_txt.text = description[p];
    picture_num();

    }

    }
    function firstImage() {

    if (loaded == filesize) {

    picture._alpha = 0;
    picture.loadMovie(image[0], 1);
    desc_txt.text = description[0];
    picture_num();

    }

    }
    function picture_num() {

    current_pos = p+1;
    pos_txt.text = current_pos+" / "+total;

    }*

    La gallery è quella che trovate qui kirupa.com/developer/mx2004/xml_flash_photogallery.htm

    Sono alla ricerca di qualcunoc he possa aiutarmi, spiegarmi come faccio a far si che quel punto che carica le immagini nel frame sia il centro delle immagini al posto che l'angolo in'alto a sinistra.

    Grazie comunque, scusatemi per come ho spiegato il tutto ma non è semplice,
    Martino.
    :figo2:.


  • User Newbie

    dunque, riassumo meglio..

    Carico le immagini da un file xml, funziona tutto.
    Il problema sta nel fatto che le immagini le carica in flash partendo dall'angolo sinistro in alto di ogni immagine mentre io ho bisogno che ogni immagine venga caricata nel suo punto centrale, così da avere immagini di dimensioni differenti sempre centrate, che siano esse verticali o orizzontali.

    Qualuno può dirmi come fare per favore?
    Non capisco se dipende dalle action di Flash o dal file Xml, non sono così esperto di flash e praticamente -venti di xml.
    Mi sto scervellando dalle 11 di questa mattina..
    Non vorrei tirare le 11 di domani.:bigsmile:

    Grazie ancora,
    Martino


  • Super User

    Ciao martino637 benvenuto nel forum GT, ho visto la gallery ma non ho capito dove sta il tuo problema, forse carichi il file swf nel tuo stage e non riesci a centrarlo?


  • User Newbie

    Non posso crederci.

    Mi autorispondo dopo ore e chiudo quindi, ho risolto non ho idea di come ma funziona.

    Mi è bastato inserire nel movieclip vuoto questo:

    onClipEvent(enterFrame){
    stage_width = 600;
    stage_height = 650;
    if(this.getBytesLoaded() >= this.getBytesTotal() && this.getBytesTotal() >500){
    centerw = stage_width/2;
    centerh = stage_height/2;
    this._x = centerw-(this._width/2);
    this._y = centerh-(this._height/2);
    }
    }

    Giocando si impara, bene...

    E lui centra dimezzando le dimensioni del documento.
    Saluti e grazie comunque,
    Martino


  • Super User

    Avevo pensato giusto era un problema di posizionamento nella main, bene mi fa piacere che hai risolto, ciao.
    P.S. Mi fa piacere che hai postato la soluzione.