Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37

Discussione: Component MediaDisplay

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    113

    Component MediaDisplay

    Ciao a tutti.
    Sto utilizzando il Media component "MediaDisplay" e sono sorpreso nell'apprendere che la semplice presenza di questo componente nella libreria aggiunge ben circa 54kb al peso del filmato.
    Ora, la mia domanda è questa: come posso far calcolare tramite il preload questo peso?
    Con _root.getBytesLoaded(); non ne vuole sapere, ne tantomeno cercando di fare il loading sull'istanza (es: myMediaDisplay.getBytesLoaded();

    Qualcuno sa come fare? Spero di essermi spiegato bene...
    Grazie.

  2. #2
    i components pesano parecchio e mettono tutti i valori ActionScript a frame 0 ...

    questo significa che un preload prima del component non puoi farlo a meno che non sia in un file esterno e caricato con loadMovieNum ( ti consiglio loadMovieNum piuttosto che loadMovie o MovieClipLoader per problematiche inerenti ai components stessi ).


    Un' alternativa invece potrebbe essere quella di fare un preload , come e' giusto che sia , da quando si vede il preload stesso , esempio:


    codice:
    stop();
    var justLoaded:Number = this.getBytesLoaded();
    this.onEnterFrame = function():Void {
    	var l:Number = this.getBytesLoaded() - justLoaded;
    	var t:Number = this.getBytesTotal() - justLoaded;
    	var p:Number = Math.floor( ( l / t ) * 100 );
    	
    	// QUI FAI QUELLO CHE DEVI FARE ...
    	trace( p );
    	
    	if( t > 0 && l >= t && p == 100 ) {
    		gotoAndStop( "INDEX" );
    		delete this.onEnterFrame;
    	}
    }
    controindicazioni con questo metodo:
    l'utente non vede niente finche' non ha "scaricato" i vari components ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    sempre peggio st'omo.. !!
    Interactive Html/CSS/JS Playground | @webbeloz ( cip..cip! )
    Mechanics & Expert Tuning Fix Z3 Roadster Community

  4. #4
    Originariamente inviato da webbeloz
    sempre peggio st'omo.. !!
    che c'e' ??
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Originariamente inviato da andr3a
    che c'e' ??
    c'è che sei criptico da bestia!
    adesso non posso fare test di quamto scritto.. di sicuro funziona! ma prova a pensare come si sente uno che magari non mastica abbastanza di AS ma soprattutto non è preparato ai tuoi interventi.. [per non dire la solita cosa]
    buona serata a domani!




    ps.
    dimenticavo..
    pure di là la stessa cosa! la questione centra JS ecc.. ecc..
    Interactive Html/CSS/JS Playground | @webbeloz ( cip..cip! )
    Mechanics & Expert Tuning Fix Z3 Roadster Community

  6. #6
    Originariamente inviato da webbeloz
    .. di sicuro funziona! ma prova a pensare come si sente uno che magari non mastica abbastanza di AS ...
    ... si sente aiutato ???
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    113
    Ok, ma il problema era proprio legato al fatto che non si vede nulla fino a che i components non sono stati caricati...
    Il preload funzionava anche a me, ma rimane il problema legato al fatto che i components non vengano "inclusi" nel conteggio..

    Penso che proverò con loadMovieNum... mi sembra la soluzione migliore..a meno che vogliate darmi altri preziosi suggerimenti

  8. #8
    Originariamente inviato da Eneide
    Il preload funzionava anche a me, ma rimane il problema legato al fatto che i components non vengano "inclusi" nel conteggio..
    che funzionava ne sono sicuro, ma se non hai fatto come ho scritto ti parte da meta' o 3/4 invece che partire da zero ...


    Comunque c'e' un altro metodo ancora, basato sempre su loadMovieNum ma che sfrutta il RuntimeSharing ...


    immagina di avere un file __components.swf dove al suo interno ci sono tutti i components che vuoi ( va ricordato che 1 components pesa 50 Kb ma 6 components ne pesano 90 , 100 massimo perche' hanno dell' ActionScript comune che una volta esportato e' gia' disponibile per gli altri... ) e tutti sono esportati per runtime_sharing ( linkage, export for runtime_sharing ).

    Sul tuo movieClip principale avrai a frame 3 una datagrid , dove tramite linkage setti "import for runtime sharing".


    In questo modo il tuo movieClip principale non pesera' niente, avra' il components esistente ma impercettibile, solo che devi assicurarti di aver caricato in loadMovieNum tale components del file di runtime sharing ...

    codice:
    stop();
    
    // creo una variabile per il livello con i components
    var __levelDepth:Number = this.getNextHighestDepth() + 1;
    // carico in loadMovieNum l' swf contenente i components
    loadMovieNum( "__components.swf", __levelDepth );
    // creo un oggetto di riferimento
    var __comps:Object;
    
    // prendo i bytes caricati fino ad ora ( custing utile ma non indispensabile )
    var justLoaded:Number = Number( this.getBytesLoaded() );
    this.onEnterFrame = function():Void {
    	// verifico che il livello con i components sia in download e raggiungibile
    	if( this["_level" + __levelDepth] != undefined && __comps == undefined ) {
    		// e in caso lo assegno a __comps
    		__comps = this["_level" + __levelDepth];
    	}
    	if(  __comps != undefined ) {
    		if( __comps._visible == true ) {
    			__comps._visible = false;
    		}
    		
    		
    		// prendo i valori per questo swf + l' swf con i components
    		// ( custing per livello attuale utile ma non indispensabile )
    		var l:Number = Number( this.getBytesLoaded() ) + __comps.getBytesLoaded() - justLoaded;
    		var t:Number = Number( this.getBytesTotal() ) + __comps.getBytesTotal() - justLoaded;
    		var p:Number = Math.floor( ( l / t ) * 100 );
    		
    		// barra con la scala
    		barLoader.bar._xscale += ( p - barLoader.bar._xscale ) * 0.2;
    		
    		// verifico che sia tutto caricato
    		if( t > 0 && l >= t && p == 100 ) {
    			this.gotoAndPlay( 2 );
    			// a frame 3 c'e' uno stop con una datagrid
    			// importataa in runtime sharing
    			delete this.onEnterFrame;
    		}
    	}
    }


    queto e' l' esempio, filmato 1 peso 660 byte, filmato con vari components peso 90 Kb ... preload effettuato con successo ...

    http://www.3site.it/ESEMPI/RUNTIME_SHARING/
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    113
    OK, ci sto provando...
    Ho 2 files, main.swf e components.swf.
    In components.swf ho piazzato il mio MediaDisplay e ho settato "export for runtime sharing" in "main.swf".

    Dopodichè ho impostato il codice che mia hai postato tu sul 1° keyframe della timeline di main.swf, in questo modo:

    stop();
    var __levelDepth:Number = this.getNextHighestDepth()+1;
    loadMovieNum("components.swf", __levelDepth);
    var __comps:Object;
    var justLoaded:Number = Number(this.getBytesLoaded());
    this.onEnterFrame = function() {
    if (this["_level"+__levelDepth] != undefined && __comps == undefined) {
    __comps = this["_level"+__levelDepth];
    }
    if (__comps != undefined) {
    if (__comps._visible == true) {
    __comps._visible = false;
    }
    var l:Number = Number(this.getBytesLoaded())+__comps.getBytesLoad ed()-justLoaded;
    var t:Number = Number(this.getBytesTotal())+__comps.getBytesTotal ()-justLoaded;
    var p:Number = Math.floor((l/t)*100);
    barLoader.bar._xscale += (p-barLoader.bar._xscale)*0.2;
    if (t>0 && l>=t && p == 100) {
    this.gotoAndPlay(2);
    delete this.onEnterFrame;
    }
    }
    };

    Sempre in main.swf, sul terzo frame metto un'istanza di MediaDisplay, è setto il linkage come "Import for runtime sharing" su "components.swf".

    Provo a testare e... s'incazza! ha una specie di blocco dato da qualche script al frame 2...

    Dove sbaglio?
    Grazie...

  10. #10
    su components.swf devi esportare per runtime sharing come components.swf e su main.swf devi importare per runtime_sharing come components.swf .... deve essere esportato ed importato con lo stesso nome
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.