• User

    Modifica slide in flash per aggiunta logo

    Salve a tutti,

    sono alle prese con un filmato in flsh che ho trovato in rete già pronto. Questo mi permette di pescare le immagini presenti in una cartella attraverso un file xml e mostrarle in sequenza e con effetto dissolvenza in un filmato in flash. Bene fin qui tutto ok, il filmato va alla grande... però vorrei aggiungere un livello, che rimanga sempre sopra tutte le foto caricate,che contenga della grafica oppure dei bottoni.... E' qui che non so come andare a vanti... precisando che di actionscript ne capisco poco... se qualcuno volesse darmi una mano bene altrimenti grazie comunque 😉

    Ecco l'actionscript contenuto nell'unico frame dell'unico livello presente nel .fla

    [flash]

    Stage.align = "TL";
    Stage.scaleMode = "noScale";
    var nocache = "?t="+(new Date().getTime());
    trace(nocache);
    // set random # variables - each must be 0 for first 'while' loop below
    var randomNum = 0;
    var randomNumLast = 0;
    // parent container
    var container_mc = this.createEmptyMovieClip("container", 0);
    // movie clip containers
    container_mc.createEmptyMovieClip("loader1_mc", 2);
    container_mc.createEmptyMovieClip("loader2_mc", 1);
    // preload watcher
    this.createEmptyMovieClip("watcher_mc", 100);
    // load xml
    images_xml = new XML();
    images_xml.ignoreWhite = true;
    images_xml.onLoad = parse;
    images_xml.load(xmlimages+nocache);
    function parse(success) {
    if (success) {
    imageArray = new Array();
    var root = this.firstChild;
    _global.numPause = Number(this.firstChild.attributes.timer*1000);
    _global.order = this.firstChild.attributes.order;
    _global.looping = this.firstChild.attributes.looping;
    _global.fadetime = Number(this.firstChild.attributes.fadetime);
    _global.xpos = Number(this.firstChild.attributes.xpos);
    _global.ypos = Number(this.firstChild.attributes.ypos);
    var imageNode = root.lastChild;
    var s = 0;
    while (imageNode.nodeName != null) {
    imageData = new Object();
    imageData.path = imageNode.attributes.path;
    imageArray[s] = imageData;
    imageNode = imageNode.previousSibling;
    s++;
    }
    // place parent container
    container_mc._x = _global.xpos;
    container_mc._y = _global.ypos;
    // parse array
    imageArray.reverse();
    imageGen(imageArray);
    } else {
    trace('problem');
    }
    }
    // depth swapping
    function swapPlace(clip, num) {
    eval(clip).swapDepths(eval("container_mc.loader"+num+"_mc"));
    }
    function loadImages(data, num) {
    if (i == undefined || i == 2) {
    i = 2;
    createLoader(i, data, num);
    i = 1;
    } else if (i == 1) {
    createLoader(i, data, num);
    i = 2;
    }
    }
    function createLoader(i, data, num) {
    thisLoader = eval("container_mc.loader"+i+"_mc");
    thisLoader._alpha = 0;
    thisLoader.loadMovie(data[num].path);
    watcher_mc.onEnterFrame = function() {
    var picLoaded = thisLoader.getBytesLoaded();
    var picBytes = thisLoader.getBytesTotal();
    if (isNaN(picBytes) || picBytes<4) {
    return;
    }
    if (picLoaded/picBytes>=1) {
    swapPlace("container_mc.loader2_mc", 1);
    alphaTween = new mx.transitions.Tween(thisLoader, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, _global.fadetime, true);
    timerInterval = setInterval(imageGen, _global.numPause, data);
    delete this.onEnterFrame;
    }
    };
    }
    function imageGen(data) {
    // random, or sequential?
    if (_global.order == "random") {
    // choose random # between 0 and total number of images
    while (randomNum == randomNumLast) {
    randomNum = Math.floor(Math.random()*data.length);
    trace(randomNum);
    }
    loadImages(data, randomNum);
    randomNumLast = randomNum;
    } else if (_global.order == "sequential") {
    // start at 0, increment to total number of images, then drop back to zero when done
    if (p == undefined || p == data.length && _global.looping == "yes") {
    p = 0;
    } else {
    break;
    }
    loadImages(data, p);
    p++;
    } else {
    trace("order attribute in xml isn't correct - must specify either 'random' or 'sequential'");
    }
    clearInterval(timerInterval);
    }
    stop();

    [/flash]


  • Super User

    Ciao Gattogiove, ma la gallery non è quella del sito in firma o si?


  • User

    @Nhatan said:

    Ciao Gattogiove, ma la gallery non è quella del sito in firma o si?

    No no quello non centra nulla.... questa di cui ho chiesto mi serve per fare un top di una pagina personale nel quale delle immagini scorrono (pescate in automatico da un xml) e sopra ci metto un logo o della grafica....

    Spero qualcuno mi possa aiutare perchè sto diventando scemo a forza di provarci....:x


  • Super User

    Ma il logo o i bottoni devono rimanere fermi mentre sotto scorrono le varie foto?


  • User

    @Nhatan said:

    Ma il logo o i bottoni devono rimanere fermi mentre sotto scorrono le varie foto?

    Si anche fermi andrebbe bene...

    Mi spiego meglio.... praticamente io vorrei riuscire a far caricare le immagini che vengno prelevate attraverso l'xml in un determinato livello... magari dando un particolare nome istanza ad un movie clip...

    In questo modo avrei la possibilità di caricare in un livello più alto ciò che voglio... un'altro movie.... un logo... dei pulsanti...

    Io avrei anche provato a creare un livello contenente un movieclip con nome istanza container... avendo visto questo riferimento nell'actionscript... ma purtroppo non ha funzionato....

    Che frana....❌cry:


  • Super User

    Scusa se vuoi che il logo sia in un livello superiore non c'è bisogno di caricarlo dall'esterno, metti un livello sopra tutti gli altri sulla time line e ci piazzi il tuo logo.


  • User

    ci ho provato ma dopo la prima immagine tutte le altre ci finiscono sopra (al logo).... io non lo voglio caricare dall'esterno... voglio solo che le varie immagini caricate rimangano in un detrminato livello cosicchè ci posso mettere altri livelli sopra...


  • Super User

    Ho capito, io mi sono permesso di darti quel suggerimento perchè avevo fatto prima una prova su uno slide che importa sempre tramite xml e in quello che ho io funziona, evidentemente il tuo è più complesso. Come fai a far scorrere le foto, ci sono pulsanti, miniature o cosaltro


  • User

    le foto scorrono da sole con effetto dissolvenza.... è una sorta di slideshow....

    Ho provato anche io mettendo su di un livello superiore ma non vaa.... lo script che hai tu ha anche l'effetto dissolvenza? Le foto vanno da sole o si mandano avanti co pulsanti?

    Grazie per la disponibilità...


  • Super User

    No in quello che ho io scorrono con le miniature che a loro volta scorrono con i pulsanti e simile a quello del tuo sito. In realtà ne ho più di uno, ho fatto un altra prova e il pulsante rimane visibile, non so che dire bisognerebbe vedere il tuo. Ciao


  • User

    se per te non è troppa rottura di scatole te lo potrei girare tramite email... ovviamente solo se non è troppo disturbo... In caso contrario non ti preoccupare troverò un'altra soluzione...

    😉


  • Super User

    Se lo hai scaricato da qualche sito basta che mi dici da dove, certo non ti garantisco di riuscire a risolvere ma di sicuro ci proverò, per quanto riguarda il disturbo non devi preocuparti, io col pc mi diverto mica ci lavoro.


  • User

    Se ci vuoi provare.... vuvuvu punto hotelstelladellest.it/slideshow.rar

    Anche io con il pc mi ci diverto...ma spesso ci lavoro pure.... 😉

    Grazie davvero.... spero di ricambiare in qualche modo prima o poi... io con grafica raster e vettoriale e html e css me la cavo...se ti serve... 🙂


  • Super User

    Per essere uno slide così semplice certo che ha un codice complesso.
    Posso vederlo solo dalla pagina html se apro il fla non funziona è normale.


  • Super User

    Probabilmente dopo tutto questo tempo hai già risolto, ma se così non fosse ecco uno script che permette di caricare un movieclip di nome j dalla libreria in un livello superiore rispetto le immagini dello slide.
    //Inserisco una figura vettoriale tramite AS
    _root.attachMovie("j", "j2", 1000); // richiamo il clip j
    _root.j2._x = 0; // imposto la x
    _root.j2._y =0; // imposto la y