Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    [mx04] preload swf esterni

    ciao a tutti,

    devo fare un preload di file esterni ma non capisco dov'è l'errore

    questa è la funzione
    codice:
    preloadswf = function (mcClip) {
    	_root.attachMovie("preloading", "mcpreloadswf", 9000000000000);
    	trace(mcClip+" - "+"swf/"+mcClip+".swf");
    	_root.mcpreloadswf._x = 413.9;
    	_root.mcpreloadswf._y = 68;
    	_root.mcpreloadswf._alpha = 20;
    	_root.mcpreloadswf._yscale = 100;
    	loadMovie("swf/"+mcClip+".swf", _root.ospite);
    	_root.mcpreloadswf.onEnterFrame = function() {
    		this._visible = 1;
    		_root.ospite._visible = 0;
    		bl = _root.ospite.getBytesLoaded();
    		bt = _root.ospite.getBytesTotal();
    		trace("peso: "+bt);
    		this.perc.text = Math.round(bl*100/bt);
    		this._xscale = this._xscale+(this.perc.text-this._xscale)/4;
    		if (bl == bt && bt>40) {
    			this._visible = 0;
    			_root.ospite._visible = 1;
    			delete this.onEnterFrame;
    		}
    	};
    };
    preloadswf(this);
    la richiamo cosi
    codice:
    preloadswf (this._name);
    il file swf si carica ma non capisco perchè nel trace mi dà questo errore
    codice:
    _level0.login - swf/_level0.login.swf
    login - swf/login.swf
    Error opening URL "file:///C|/Documents%20and%20Settings/Rossella/Documenti/V1/swf/_level0.login.swf"
    peso: -1
    peso: -1
    peso: -1
    peso: 348433
    e la clip del preload rimane visibile :master:

    qualcuno mi darebbe un'aiutino
    grazie

  2. #2
    Da quello che vedo richiami la funzione con preloadswf(this); e non con preloadswf(this.name), quindi è normale che ti da quell'errore. P
    oi a prima vista ho trovato anche un'altro errore, non eliminare l'enter frame in questo modo, delete this.onEnterFrame, ma fallo con delete _root.mcpreloadswf.onEnterFrame


  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    non ho la possibilità di provarlo, vedi se cambia qualcosa

    codice:
    function preloadswf (mcClip) {
    	_root.attachMovie("preloading", "mcpreloadswf", 100);
    	//trace(mcClip+" - "+"swf/"+mcClip+".swf");
    	_root.mcpreloadswf._x = 413.9;
    	_root.mcpreloadswf._y = 68;
    	_root.mcpreloadswf._alpha = 20;
    	_root.mcpreloadswf._yscale = 100;
    	loadMovie("swf/"+mcClip+".swf", _root.ospite);
    	_root.mcpreloadswf.onEnterFrame = function() {
    		this._visible = true;
    		_root.ospite._visible = false;
    		bl = _root.ospite.getBytesLoaded();
    		bt = _root.ospite.getBytesTotal();
    		trace("peso: "+bt);
    		this.perc.text = Math.round((bl/bt)*100);
    		this._xscale = this._xscale+(this.perc.text-this._xscale)/4;
    		if (bl >= bt && bt!=undefined) {
    			this._visible = false;
    			_root.ospite._visible = true;
    			delete this.onEnterFrame;
    		}
    	};
    };

  4. #4
    Originariamente inviato da jeck
    oi a prima vista ho trovato anche un'altro errore, non eliminare l'enter frame in questo modo, delete this.onEnterFrame, ma fallo con delete _root.mcpreloadswf.onEnterFrame
    che stai dicendo ? :master:


    comunque

    _root.attachMovie("preloading", "mcpreloadswf", 9000000000000);

    porca trota stai su MX2004, perche' un usare la semplicissima
    _root.attachMovie("preloading", "mcpreloadswf", _root.getNextHighestDepth());



    poi perche' fai un attach movie sulla _root, non ti serve la _root ? ... prova a farlo su un altro mc e di di preciso come e dove non va
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Originariamente inviato da andr3a
    che stai dicendo ? :master:
    Lei sta creando un enterFrame in questo modo

    _root.mcpreloadswf.onEnterFrame...

    e lo termina con

    delete this.onEnterFrame

    Io stavo consigliando di terminarlo con

    delete _root.mcpreloadswf.onEnterFrame

    Perchè è sbagliato? Ame ha dato dei problemi a fare come faceva lei, forse perchè ne avevo altri che potevano dare fastidio, comunque mi funzionava.

  6. #6
    _root.mcpreloadswf.onEnterFrame = function() {
    delete this.onEnterFrame;
    }

    e' il modo corretto perche' this, all' interno di quell' onEnterFrame e' esattamente riferito a se stesso, ovvero a
    _root.mcpreloadswf


    ... inutile usare percorsi assoluti per autoreferenziarsi, o no ?

    funzionano in modo identico entrambi, solo che con this fai prima
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Originariamente inviato da andr3a
    _root.mcpreloadswf.onEnterFrame = function() {
    delete this.onEnterFrame;
    }

    e' il modo corretto perche' this, all' interno di quell' onEnterFrame e' esattamente riferito a se stesso, ovvero a
    _root.mcpreloadswf


    ... inutile usare percorsi assoluti per autoreferenziarsi, o no ?

    funzionano in modo identico entrambi, solo che con this fai prima
    Si è giusto, forse sono stato io fagiano qunado l'ho utilizzato, booo, comunque grazie del chiarimento

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Originariamente inviato da andr3a
    che stai dicendo ? :master:


    comunque

    _root.attachMovie("preloading", "mcpreloadswf", 9000000000000);

    porca trota stai su MX2004, perche' un usare la semplicissima
    _root.attachMovie("preloading", "mcpreloadswf", _root.getNextHighestDepth());



    poi perche' fai un attach movie sulla _root, non ti serve la _root ? ... prova a farlo su un altro mc e di di preciso come e dove non va
    grazie mille a tutti e scusate per il ritardo

    se faccio cosi
    codice:
    _root.attachMovie("preloading", "mcpreloadswf", _root.getNextHighestDepth());
    mi rimane la barra in alto a sinistra se invece faccio cosi
    codice:
    _root.attachMovie("preloading", "mcpreloadswf", 9000000000000);
    mi funziona

    adesso và il problema stava qui
    codice:
    preloadswf(this);

    PS: una domandina...
    se fate click su login e date ok (i campi sono già compilati) poi dal menu sulla sinistra cliccate su "SINOTTICI" e poi dinuovo su quello che esce sotto "QUADRI ELETTRICI" il datagrid si popola di scritte e immagini, posso utilizzare lo stesso preload per quelle immagini??
    allora guardate qui

  9. #9
    Devi richiamare la funzione in questo modo, preloadswf(this._name), altrimenti alla funzione passi il percorso completo di dove si trova la clip. Quella funzione così non va bene per tutte le immagini, perchè fa il preload solo sul clip _root.ospite, o ne fai un'altra, oppure modifichi quella in modo da passare alla funzione il nome del clip a cui fare il preload

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    si ma le immagini vengono caricate dentro una classe cosi:
    codice:
    class classi.ImageRenderer extends MovieClip
    {	
    	private var image_mc:MovieClip;
    	private var imageID:Number;
    	public var dgProdotti:mx.controls.DataGrid;
    	
    	function ImageRenderer()
    	{
    		this.createEmptyMovieClip("image_mc",100);
    		image_mc._xscale=25;
    		image_mc._yscale=25;
    		image_mc._x=7;
    		image_mc._y=-30;
    	}
    	
    	function setValue(suggested:String,item:Object,selected:String):Void
    	{
    		if(item.ARTICOLO==undefined)
    		{
    			this.image_mc.unloadMovie();
    			this.imageID=undefined;
    		} 
    		if (item!=undefined && (this.imageID!=item.ARTICOLO || image_mc.getBytesLoaded()==0))
    
    		{
    			//preloadjpg(item.ARTICOLO)
    			this.image_mc.loadMovie("images/"+item.ARTICOLO+".jpg");
    			this.imageID=item.ARTICOLO;
    		}
    	}
    }
    quindi dovrei mettere la funzione dentro la classe ma non credo si possa fare giusto??
    :master:

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.