Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    preload immagni dall'esterno

    Ciao a tutti,
    sto cercando di creare uno sfogliamento automatico di n immagini, che dissolvono una sull'altra.

    Il tutto, è dettato da PHP che manda al file flash quante e quali immagini caricare. Il principio e pure lo script, che ho realizzato, funziona; ma in questa parte mi stavo preoccupando di realizzare prima un preload (che carichi tutto, per esempio 40 immagini in 40 movie), cosa che non riesco a fare.

    Ecco lo script sintetizzato (ho tolto alcune cose):

    var cat = _level0.l1;
    var sot = _level0.l2;
    var mf = _level0.mf;
    var st_x = 430;
    var st_y = 430;
    var limit = mf + 1;

    carica();

    function carica() {

    carichiamoFoto = new LoadVars();
    carichiamoFoto.load("gallery_Extractor.php?l1="+ca t+"&l2="+sot);
    carichiamoFoto.onLoad = function(success) {
    if (success) {

    max_foto = this.nr;

    for (i=1; i < max_foto+1; i++) {

    _root.createEmptyMovieClip("foto"+i,100-i);

    dim_w = this["imw"+i];
    dim_h = this["imh"+i];

    immagine = _root["foto"+i];
    immagine.loadMovie(this.perc+this["foto"+i]);

    // centro l'immagine in orizzontale ed in verticale
    immagine._x = (st_x / 2) - (dim_w / 2);
    immagine._y = (st_y / 2) - (dim_h / 2);

    // perfeziono il caricamento dell'immagine (smoth)
    var new_img = new flash.display.BitmapData(dim_w, dim_h);
    new_img.draw(_root["foto"+i]);
    this.my_img.attachBitmap(new_img, 1, "auto", true);

    //if(i<>1) {

    //_root["foto"+i]._alpha = 0;

    //}

    }
    }
    }
    }

    stop();
    in parole povere, creo n movie a seconda delle immagini che devo caricare. Come faccio a fare un preload?

    Ho utilizzato questo semplice script al primo frame:

    if (_totalframes == _framesloaded) {
    gotoAndPlay (3);
    }
    totale = getBytesTotal();
    loaded = getBytesLoaded();
    mancano = totale-loaded;
    loadNero.barra._width = int(loaded/totale*100);
    al secondo ho messo:

    gotoAndPlay(1);
    e al terzo tutto il resto (il primo script che vi ho postato). Il risultato è che sembra passare direttamente al terzo frame e caricara visivamente le foto una per una. la visibilità l'ho lasciata al 100% così da poter vedere l'effetto.

    Non dovrebbe caricare prima tutte le foto nei vari movie e poi visualizzarli? Come posso fare una cosa del genere?

    Vi metto anche il link per vedere cosa succede (LA SCHERMATA RESTA BIANCA E DOPO UN PO', CARICA LE IMMAGINI):

    http://www.mdlwork.com/project/test/....php?l1=1&l2=1

    Vi sarei grato se riuscite ad aiutarmi. Saluti Max
    http://www.mdlwork.com

  2. #2
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    il problema del load movie è che ti devi prendere istante per istante la dimensione delle immagini caricate e non la puoi prendere facendo _root.getBytes.... ma la devi prendere sull'istanza del mc su cui fai il load movie... ma per fare questo devi usare un mc con associato un onEnterFrame...

    oppure ti consiglio il MC loader che ha già "in se" degli event handler che si occupano dell'inizio del caricamento, durante e la fine...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    grazie byaur

    Ma potrei introdurre il controllo all'interno della funzione dove carico le immagini?

    Ovvero, all'interno del ciclo for, dentro la funzione carica in questo modo:

    totale = getBytesTotal();

    function carica() {

    carichiamoFoto = new LoadVars();
    carichiamoFoto.load("gallery_Extractor.php?l1="+ca t+"&l2="+sot);
    carichiamoFoto.onLoad = function(success) {
    if (success) {

    max_foto = this.nr;

    for (i=1; i < max_foto+1; i++) {

    _root.createEmptyMovieClip("foto"+i,100-i);

    if (_totalframes == _framesloaded) {
    gotoAndPlay (2);
    }

    loaded = getBytesLoaded();
    mancano = totale-loaded;
    loadNero.barra._width = int(loaded/totale*100);


    dim_w = this["imw"+i];
    dim_h = this["imh"+i];

    immagine = _root["foto"+i];
    immagine.loadMovie(this.perc+this["foto"+i]);

    // centro l'immagine in orizzontale ed in verticale
    immagine._x = (st_x / 2) - (dim_w / 2);
    immagine._y = (st_y / 2) - (dim_h / 2);

    // perfeziono il caricamento dell'immagine (smoth)
    var new_img = new flash.display.BitmapData(dim_w, dim_h);
    new_img.draw(_root["foto"+i]);
    this.my_img.attachBitmap(new_img, 1, "auto", true);

    //if(i<>1) {

    //_root["foto"+i]._alpha = 0;

    //}

    }
    }
    }
    }
    O qualcosa di simile? Il codice in rosso è quello che ho aggiunto..

    Ovviamente metterei l'alpha di tutte le immagini a zero.

    MAX
    http://www.mdlwork.com

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231
    Scusate,
    cechiamo di semplificare le cose e partiamo dal principio, non essendo un esperto di Action Script.

    Se metto nel primo keyframe:

    _root.createEmptyMovieClip("foto",100);
    immagine = _root["foto"];
    immagine.loadMovie("foto.jpg");
    e quindi carico semplicemente una foto dall'esterno, come faccio a fare il preload?

    Mi aiutereste a capire bene il concetto? Supponiamo che la foto pesa 700Kbyte..

    Grazie MAX
    http://www.mdlwork.com

  5. #5
    codice:
    function preload(clip){
    	car = clip.getBytesLoaded();
    	tot = clip.getBytesTotal();
    	perc = Math.round((car/tot)*100);
    	clip.createTextField("testo", 1, (this._width/2), (this._height/2), 200, 20);
    	clip.testo.wordWrap = true;
    	testoformat = new TextFormat();
    	testoformat.color = "0x123466";
    	testoformat.font = "Verdana";
    	clip.testo.setTextFormat(testoformat);
    	if(!isNaN(perc)) {
    		clip.testo.text = "Caricamento..."+perc+"%";
    		clip.testo.setTextFormat(testoformat);
    	}
    	if (car == tot && car > 1024) {
    		clearInterval(a);
    		clip.testo.text = "";
    	}
    }
    _root.createEmptyMovieClip("foto",100);
    immagine = _root["foto"];
    immagine.loadMovie("foto.jpg");
    a = setInterval(preload,50,immagine);
    Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
    Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento

  6. #6
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    codice:
    _root.createEmptyMovieClip("foto",100);
    immagine = _root["foto"];
    immagine.loadMovie("foto.jpg");
    
    _root.createEmptyMovieClip("loader",101);
    _root.loader.onEnterFrame = function(){
       a = immagine.getBytesLoaded();
       b = immagine.getBytesTotal();
    
       perc = (100*a)/b;
       tuocampoditesto.text = "Caricato" + perc + " %";
    }
    considera però che il getBytesTotal() a volte con il loadMovie non ti da il valore esatto fino a quando non ha completato il caricamento...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    perfetto...

    Ho provato il primo metodo (enigma_79) e funziona alla grande!

    Grazie anche a byaur

    Adesso cercherò di capire meglio lo script e a fare i passi successivi, ovvero caricare diverse foto in modo dinamico, come il primo script che ho postato...

    Seguiranno notizie

    Grazie ancora.. MAX
    http://www.mdlwork.com

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    allora...

    Ho provato ad applicare lo script di enigma_79 al mio tanto amato/odiato script e non funziona... Ovviamente non funziona perchè io non sono capace a farlo funzionare. Ecco cosa ho fatto:

    var cat = _level0.l1;
    var sot = _level0.l2;
    var mf = _level0.mf;
    var st_x = 430;
    var st_y = 430;
    var limit = mf + 1;

    // funzione preload gentilmente concessa da enigma_79

    function preload(clip){
    car = clip.getBytesLoaded();
    tot = clip.getBytesTotal();
    perc = Math.round((car/tot)*100);
    clip.createTextField("testo", 1, (this._width/2), (this._height/2), 200, 20);
    clip.testo.wordWrap = true;
    testoformat = new TextFormat();
    testoformat.color = "0x123466";
    testoformat.font = "Verdana";
    clip.testo.setTextFormat(testoformat);
    if(!isNaN(perc)) {
    clip.testo.text = "Caricamento..."+perc+"%";
    clip.testo.setTextFormat(testoformat);
    }
    if (car == tot && car > 1024) {
    clearInterval(a);
    clip.testo.text = "";
    }
    }

    // funzione carica inventata da me
    // serve per caricare n foto in n movie clip in modo dinamico

    function carica() {

    carichiamoFoto = new LoadVars();
    carichiamoFoto.load("gallery_Extractor.php?l1="+ca t+"&l2="+sot);
    carichiamoFoto.onLoad = function(success) {
    if (success) {

    max_foto = this.nr;

    for (i=1; i < max_foto+1; i++) {

    _root.createEmptyMovieClip("foto"+i,100-i);

    dim_w = this["imw"+i];
    dim_h = this["imh"+i];

    immagine = _root["foto"+i];
    immagine.loadMovie(this.perc+this["foto"+i]);

    // richiamo la funzione di enigma_79

    a = setInterval(preload,50,immagine);

    // centro l'immagine in orizzontale ed in verticale
    immagine._x = (st_x / 2) - (dim_w / 2);
    immagine._y = (st_y / 2) - (dim_h / 2);

    // perfeziono il caricamento dell'immagine (smoth)
    var new_img = new flash.display.BitmapData(dim_w, dim_h);
    new_img.draw(_root["foto"+i]);
    this.my_img.attachBitmap(new_img, 1, "auto", true);

    //if(i<>1) {

    _root["foto"+i]._alpha = 0;

    //}



    }
    }
    }
    }

    //_root.createEmptyMovieClip("foto",100);
    //immagine = _root["foto"];
    //immagine.loadMovie("foto.jpg");
    //a = setInterval(preload,50,immagine);

    carica();

    stop();
    La modifichiamo insieme?

    MAX
    http://www.mdlwork.com

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    altre modifiche...

    Ho modificato lo script caricando tutti i movie che contengono le immagini, all'interno di un unico movieclip chimato contenitore... E dopo, passando alla funzione "preload", lo stesso contenitore... Ma non funziona uguale:

    var cat = _level0.l1;
    var sot = _level0.l2;
    var mf = _level0.mf;
    var st_x = 430;
    var st_y = 430;
    var limit = mf + 1;

    _root.createEmptyMovieClip("contenitore",1000);

    function preload(clip){
    car = clip.getBytesLoaded();
    tot = clip.getBytesTotal();
    perc = Math.round((car/tot)*100);
    clip.createTextField("testo", 1, (this._width/2), (this._height/2), 200, 20);
    clip.testo.wordWrap = true;
    testoformat = new TextFormat();
    testoformat.color = "0x123466";
    testoformat.font = "Verdana";
    clip.testo.setTextFormat(testoformat);
    if(!isNaN(perc)) {
    clip.testo.text = "Caricamento..."+perc+"%";
    clip.testo.setTextFormat(testoformat);
    }
    if (car == tot && car > 1024) {
    clearInterval(a);
    clip.testo.text = "";
    }
    }

    function carica() {

    carichiamoFoto = new LoadVars();
    carichiamoFoto.load("gallery_Extractor.php?l1="+ca t+"&l2="+sot);
    carichiamoFoto.onLoad = function(success) {
    if (success) {

    max_foto = this.nr;

    for (i=1; i < max_foto+1; i++) {

    contenitore.createEmptyMovieClip("foto"+i,100-i);

    dim_w = this["imw"+i];
    dim_h = this["imh"+i];

    immagine = _root.contenitore["foto"+i];
    immagine.loadMovie(this.perc+this["foto"+i]);
    //loadMovie(this.perc+this["foto"+i],contenitore.foto+i);

    //immagine2 = _root["foto1"];
    //immagine2.loadMovie(this.perc+this["foto1"]);

    a = setInterval(preload,50,immagine);

    // centro l'immagine in orizzontale ed in verticale
    //_root.contenitore.immagine._x = (st_x / 2) - (dim_w / 2);
    //_root.contenitore.immagine._y = (st_y / 2) - (dim_h / 2);

    // perfeziono il caricamento dell'immagine (smoth)
    //var new_img = new flash.display.BitmapData(dim_w, dim_h);
    //new_img.draw(_root["foto"+i]);
    //this.my_img.attachBitmap(new_img, 1, "auto", true);

    //if(i<>1) {

    _root.contenitore["foto"+i]._alpha = 0;

    //}



    }
    }
    }
    }

    //_root.createEmptyMovieClip("foto",100);
    //immagine = _root["foto"];
    //immagine.loadMovie("foto.jpg");
    //a = setInterval(preload,50,immagine);

    carica();

    stop();
    Ho commentato qualcosa per semplificare...

    Help please vi faccio un regalo per quando vi sposate
    http://www.mdlwork.com

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    esempio..

    vorrei ottenere un risultato simile a questo bel sito (intendo nello sfogliamento di immagini):

    http://www.stefanocorradi.com/

    guardate che idea carina... MAX
    http://www.mdlwork.com

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.