Visualizzazione dei risultati da 1 a 7 su 7

Discussione: preload thumbnail

  1. #1

    E' mai possibile che la cosa piu' difficile e' il preload?!

    Scusate per l'oggetto, pero' credo che in effetti e' vero.
    Ogni progetto nuovo, ogni preload nuovo e' una scoperta.

    Stavolta pero' ho deciso di chiedere aiuto a voi, che di sicuro ne sapete piu' di me.

    E' una cosa semplice quella che voglio fare: un banale preload
    delle thumbnails.

    Qui e' lo stato del movie in cui si trova adesso. Molto rude x ora.
    http://www.emotu.it/eMageEngine/imageEngine.swf

    Le thumbs sono caricate con loadMovie da un file XML.
    Quando faccio loadMovie di ogni thumb poi chiamo una funzione preloading() che dovrebbe farmi (per adesso mi accontenterei) visualizzare in un textfield la percentuale.

    Ma mi esce subito, perche' loaded = total.
    Non capisco perche'.

    Qua carico le thumb...
    codice:
    function createThumbs ()
    {
    	for(i=0;i<resourceCount;i++)
    	{
    		duplicateMovieClip(_root.thumb_mc,"thumb_mc"+(i+1),i+1);
    		_root["thumb_mc"+(i+1)]._x = firstX + _root["thumb_mc"+i]._x + 
    				_root["thumb_mc"+(i)]._width  + _root.thumbGap;
    		_root["thumb_mc"+(i+1)]._y = firstY;
    		_root["thumb_mc"+(i+1)].thumb._alpha= 50;
    		_root["thumb_mc"+(i+1)].num.text = i+1;
    		_root["thumb_mc"+(i+1)].name.text = descr[i];
    		
    		mc_i = _root["thumb_mc"+(i+1)].thumb;
    		loadMovie(file[i], mc_i);
    		mc_i.loadImageCalled = true;
    		preloading(mc_i);
    	}
    }
    codice:
    function preLoading (mc_i)
    {
    	mc_i.createEmptyMovieClip("altronome", 70);
    	mc_i.altronome.onEnterFrame = function() {
    		trace("this = "+mc_i);
    		total = mc_i.getBytesTotal();
    		loaded = mc_i.getBytesLoaded();
    		trace("Loaded: " + loaded + " Total: " + total);
    		if (loaded != total) {
    			trace("loaded != total");
    			trace("Bytes Total: "+total);
    			trace("Bytes Loaded: "+loaded);
    			// Inserisco nella casella il totale percentuale
    			perc = parseInt((loaded*100)/total);
    			mc_i.percTxt.text += perc;
    			// Allungo la barra e la posiziono in modo fisso sull'asse X
    			//setProperty(this["barra"], _xscale, (perc*larghezza)/100);
    			//setProperty(this["barra"], _x, -22.5);
    		} else {
    			trace("loaded == total");
    			delete mc_i.onEnterFrame;
    		}
    	};
    }

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Se carichi l'immagine nello stesso movieclip dell'enterframe, questo viene cancellato dal caricamento del filmato esterno:

    codice:
    function createThumbs ()
    {
    	for(var i = 0; i < resourceCount; i++)
    	{
    		var pr = _root["thumb_mc" + i];
    		var mc = _root.thumb_mc.duplicateMovieClip("thumb_mc" + (i + 1), i + 1);
    		mc._x = firstX + pr._x + pr._width  + _root.thumbGap;
    		mc._y = firstY;
    		mc.thumb._alpha = 50;
    		mc.num.text = i + 1;
    		mc.name.text = descr[i];
    
    		preloading(mc, file[i]);
    	}
    }
    
    function preLoading (mc, file)
    {
    	mc.thumb.loadImageCalled = true;
    	mc.thumb.createEmptyMovieClip("inner", 70);
    	mc.thumb.inner.loadMovie(file);
    	mc.thumb.onEnterFrame = function()
    	{
    		var car = this.inner.getBytesLoaded();
    		var tot = this.inner.getBytesTotal();
    		if (car >= tot && tot > 4) {
    			trace("loaded == total");
    			delete this.onEnterFrame;
    		}
    		var perc = Math.round((car / tot) * 100);
    		this.percTxt.text = perc;
    		this.barra._xscale = (perc*larghezza)/100);
    	};
    }

  3. #3
    Grazie mille. ora va anche se devo risolvere alcora qualche problemino.

    eMageEngine

  4. #4

  5. #5
    Originariamente inviato da negatyve
    Quale?
    Mettere un po' a posto lo scorrimento, magari sfumando le thumb ai due estremi dx e sx.

    Pio devo fare' il menu e gestire l'evento onPress per visualizzare l'immagine grande.

    Eh, ce n'ho di cose da fare ancora. Ma credo che il preload era la cosa piu' complicata.
    Ho sempre il terrore dei preload, perche' non ce n'e' mai uno uguale...

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Infatti nel flash mx 2004 hanno aggiunto la Classe MovieClipLoader, per dare un'API comune a tutti i preloader: effettivamente ce n'è voluto, di tempo.. :)

  7. #7
    Ho provato MX 2004, ma non mi leggeva manco uno dei miei progetti. Sono ritornato a MX 6

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