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

    preload immagini 'faidate'

    salve a tutti, ho la necessità di caricare 3 immagini esterne all'interno di 3 mc vuoti e di utilizzarli poi nella timeline.
    ora, sono un novellino di actionscript per cui me le sono creato uno in questa maniera:

    primo creo 3 mc vuoti che chiamo "immagine" "piero" e "gianni" e li piazzo nello stage.
    nel primo keyframe.

    codice:
    setProperty("_root.immagine", _visible, "0");
    setProperty("_root.piero", _visible, "0");
    setProperty("_root.gianni", _visible, "0");
    loadVariablesNum("newsprimapagina.asp",0);
    loadMovie("./public/news/"+img1,_root.immagine);
    loadMovie("./public/news/"+img2,_root.piero);
    loadMovie("./public/news/"+img3,_root.gianni);
    car1 = _root.immagine.getBytesLoaded();
    tot1 = _root.immagine.getBytesTotal();
    if (tot1 > 20) {
    	if (car1 == tot1) {
    		var load1=true;
    	}
    }
    car2 = _root.piero.getBytesLoaded();
    tot2 = _root.piero.getBytesTotal();
    if (tot2 > 20) {
    	if (car2 == tot2) {
    		var load2=true;
    	}
    }
    car3 = _root.gianni.getBytesLoaded();
    tot3 = _root.gianni.getBytesTotal();
    if (tot3 > 20) { 
    	if (car3 == tot3) {
    		var load3=true;
    	}
    }
    if (_root.load1 > 0 && _root.load2 > 0 && _root.load3 > 0) {
    	if(_root.load1 == true && _root.load2 == true && _root.load3 == true) {
    	}
    	gotoAndPlay(3);
    
    }
    nel secondo fotogramma faccio un goto(2).. mentre nel terzo dovrei inziare ad ultizzare gli Mc.

    quello che succede è che sembra carichi le immagini (ho provato a visualizzare byte tot e byte car per ogni immagini) ma appena arriva al fotogramma 3 (dove setto le proprietà su visible="1" per ogni immagine) sembra che le perda o le scarichi..

    dove sbaglio ? chi mi aiuta?

    ah ovviamente il codice "fa schifo" ma le mie conoscenze putroppo non vanno oltre..

    grazie a chi mi aiuta..

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    se non sei costretto ad usare 3 frame, ti consiglio di evitare i caricamenti esterni usando quel codice
    tempo fa scrissi una classe in AS1, utilizzabile indistintamente da flash mx in poi (forse anche flash 5)

    puoi scaricare la classe compresa di esempio da questo link

    l'utilizzo è abbastanza semplice e la classe contiene già al suo interno tutte le verifiche necessarie al caricamento, se segui le indicazioni dei commenti nel codice, non dovresti trovare difficoltà ad applicarla

  3. #3
    grazie 1000, scusa il ritardo per la risposta..

    l'ho usato ed è veramente bel fatto e facile, complimenti.

    ho però un altro problema per chi mi può aiutare:

    carico i dati da file esterno asp attraverso

    codice:
    loadVariablesNum("./pagina.asp", 0);
    la pagina asp mi torna "img1=0001.jpg"

    se creo un campo di testo dinamico sullo stage e metto img1 nel campo var, il dato viene letto correttamente, mentre se faccio trace(img1) mi da undefined..

    perchè? :master:

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    nell'invio vengono aggiunti degli spazi quindi il nome del file non viene riconosciuto correttamente, prova a mettere un & alla fine dell'output in modo che ti esca così:

    "img1=0001.jpg&"

    [edit] aspetta, avevo letto di sfuggita, il problema è un tantino diverso... un attimo...

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Allora la questione è questa, quando ricevi dei dati dall'esterno devi tener conto del ritardo tra la richiesta effettuata nel codice e l'effettiva fruibilità dei dati, per questo la variabile "img1" se richiamata subito dopo nel codice, non viene definita.
    A tal proposito, dalla versione di actionscript introdotta in Flash MX, è presente una classe che sostituisce effettivamente la funzione loadVariablesNum.
    La classe si chiama LoadVars e contiene nativamente un gestore di eventi che verifica l'avvenuto caricamento dei dati dall'esterno, all'interno del quale è possibile effettuare le azioni con le variabili caricate appunto dall'esterno

    Il tuo caso è riassumibile in queste righe di codice

    Codice PHP:
    var myLoadVars = new LoadVars();
    myLoadVars.onLoad = function(success) {
        if(
    success){
            
    trace(myLoadVars.img1); // output: "0001.jpg"
        
    } else {
            
    trace("caricamento non riuscito");
        }
    }
    myLoadVars.load("pagina.asp");
    // se provi a fare un trace di img1 fuori dall'onLoad:
    trace(myLoadVars.img1); // output: "undefined" 

  6. #6
    ah ok.. infatti adesso così funziona...
    codice:
    var myLoadVars = new LoadVars();
    myLoadVars.load("./newsprimapagina.txt");
    myLoadVars.onLoad = function(success) {
        if(success){
            IMAGE1 = myLoadVars.img1; // output: "0001.jpg"
    		IMG1 = "./public/news/"+IMAGE1;
    		trace(IMG1);
    		#include "Preload.as"
    		var p = new Preload();
    		var mc = _level0.createEmptyMovieClip("mc1", 1);
    		mc.loadMovie(IMG1);
    		p.onLoadStart = function(target) {
    			trace("Caricamento iniziato");
    		};
    		p.onLoadProgress = function(target) {
    			trace("Caricamento... "+this.percent+"%");
    		};
    		p.onLoadInit = function(target) {
    			trace("Caricamento terminato con successo");
    			trace("Le nuove dimensioni del clip '"+target+"' sono di "+target._width+"x"+target._height+" pixel");
    		};
    		p.start(mc);
        } else {
            trace("caricamento non riuscito");
        }
    }
    una domanda riguardo al tuo codice per il preload.

    il tutto si svolge su un fotogramma.. appena l'immagine è stata caricata suppongo che la riga

    codice:
    p.start(mc);
    faccia visualizzare il file caricato.

    e se volessi star fermo su questo fotogramma per tutto il caricamento ed a caricamento avvenuto fare un play sulla timeline?

    grazie, sei gentilissimo...

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    no, lo start attiva la classe che verifica il caricamento del clip passato tra parentesi
    l'evento per effettuare delle azioni a caricamento avvenuto è "onLoadInit", e così come per l'onLoad di LoadVars, questo viene eseguito solo nel momento in cui l'immagine è completamente caricata, perciò puoi mettere lì il tuo play()

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.