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

    preload di immagini "pescate" da un xml

    So che il problema è stato già affrontato, tuttavia dopo ore di elucubrazioni non ne sono venuto ancora a capo...
    Del resto la trattazione di questi argomenti non ha una diffusione ancora così capillare...
    Tuttavia,
    il punto è questo:
    Carico all'interno di un mc chiamato "contenitore" (che è un array che si incrementa tramite for) una serie di Thumbnail prese da un file xml.
    Poi c'è un altro mc ("selezione") che mi serve a far vedere la prima immagine ingrandita [per le successive dovrò cliccare sulle thumb].
    Tutto funge, il problema che non riesco a risolvere è come realizzare i preload per il mc "contenitore" e per quello che ospiterà invece le immagini ingrandite.
    Il codice è questo:

    xmlfile = "portfolio.xml";
    leggi = function () {
    nuovo = new XML();
    nuovo.ignoreWhite = true;
    nuovo.load(xmlfile);
    nuovo.onLoad = function(success) {
    if (success) {
    nfoto = this.firstChild.childNodes.length;
    t = 0;
    basso = nfoto;
    for (i=0; i<nfoto; i++) {
    _root.attachMovie("mc", "mc"+(i+1), i+1);
    dim[i] = this.firstChild.childNodes[i].attributes.thumbwidth;
    _root["mc"+(i+1)]._y = 200;
    _root["mc"+(i+1)]._x = t+gap_x;

    if (i==0) {
    _root["mc"+(i+1)]._alpha = 50;
    }
    t += Number(dim[i])+dist_tra_foto;
    if (t>basemovie-gap_x) {
    kk = false;
    bt_giu._visible = true;
    }
    _root["mc"+(i+1)].a = this.firstChild.childNodes[i].attributes.image;

    _root["mc"+(i+1)].contenitore.loadMovie(this.firstChild.childNodes[i].attributes.thumb);
    _root["mc"+(i+1)].etichetta.text = this.firstChild.childNodes[i].attributes.worktitle;
    _root["mc"+(i+1)].b = this.firstChild.childNodes[i].attributes.worktitle;
    _root["mc"+(i+1)].c = this.firstChild.childNodes[i].attributes.imagewidth;
    _root["mc"+(i+1)].d = this.firstChild.childNodes[i].attributes.imageheight;
    }
    // **** Prima foto che si visualizza ****
    idPos = setInterval(Centrato,0,_root.selezione)
    _root.sipario._visible = true;
    _root.sipario.gotoAndPlay(18);
    _root.selezione.loadMovie(this.firstChild.childNod es[0].attributes.image);
    _root.didascalia.text = this.firstChild.childNodes[0].attributes.worktitle;
    // ///////////////////////////////////
    letto = true;
    } else {
    _root.didascalia.text = "errore di lettura";
    }
    };
    };

    Grazie infinite in anticipo a chi volesse soccorrermi!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    scusa, ma non ho capito il prob... non puoi mettere su contenitore le azioni

    onEnterFrame{
    caricati=this.getBytesLoaded();
    totali=this.getBytesTotal();
    ...
    }

    eccetera eccetera come in un preload normale?
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  3. #3
    Innanzitutto, grazie per la risposta.
    Dopodichè:
    Questo lho fatto (e mi funziona) per fare il preload delle immagini grandi (quelle che appaiono dentro il mc "selezione").
    La stessa cosa però non riesco a replicarla per il mc "contenitore", quello che dovrebbe contenere tutte le thumb (che viene posto sullo stage tramite concatenamento e che quindi io non ho "concretamente" presente sullo stage).
    Ho provato anche a riferirmi ad esso attraverso la linea temporale con l'utilizzo di
    _root.contenitore.OnEnterFrame()=function {
    //funzione per il preload
    }
    ma non funziona lo stesso.

    Forse per via dell'Array? [in effetti alla fine del ciclo for le mie thumb appaiono, ma una alla volta ovviamente...]
    Boh, tiro a indovinare....

    Grazie ancora cmq... sicuramente è una cavolata ma non riesco a rintracciarla.....

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    _root.contenitore.OnEnterFrame=function(){
    ...
    }
    senza parentesi...
    cmq sarebbe
    _root["mc"+i].contenitore.onEnterFrame=function(){
    }
    giusto? e poi: "mc" è il linkage del mc che hai in libreria. questo mc contiene un altro mc che si chiama contenitore. se in "mc" scrivi:
    contenitore.onLoad=function(){
    trace(_parent._name);
    }
    ti traccia i nomi? prova e mi fai sapere.
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  5. #5
    ... e infatti è esattamente come dici tu.
    Il trace funziona, allora ho smanettato un pò sulla base delle tue parole e ho risolto.
    Grazie mille.

    Adesso ottengo un preload per ogni thumb caricata.
    E' perfetto così, cmq, giusto per curiosità, sarebbe possibile fare un unico preload che gestisca l'insieme delle thumb?

    Ciao e grazie ancora

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 © 2025 vBulletin Solutions, Inc. All rights reserved.