Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Problema Flash con XML

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Problema Flash con XML

    Ciao a tutti!

    Premetto che uso pochissimo (e male) Flash... :master:

    Mi è stata fatta la richiesta di creare un file che mostrasse in sequenza alcune immagini.
    Ho trovato un file .fla già pronto, che richiedeva solo poche modifiche. Le immagini (presenti in una certa cartella) vengono lette da un file XML.

    Visto che ci sarà l'esigenza di aggiornare le immagini, ho pensato che il modo più pratico fosse quello di far aggiornare automaticamente il file XML.

    Il file XML è questo:

    codice:
    <?xml version="1.0"?>
    <RSS PAUSE="4000">
    	<IMAGE TRANSITION="1">i/panoramiche/foto_1.jpg</IMAGE>
    	<IMAGE TRANSITION="1">i/panoramiche/foto_2.jpg</IMAGE>
    	<IMAGE TRANSITION="1">i/panoramiche/foto_3.jpg</IMAGE>
    	<IMAGE TRANSITION="1">i/panoramiche/foto_4.jpg</IMAGE>
    </RSS>
    Ho creato un file ASP che va a leggere il contenuto della cartella "panoramiche" e poi mi salva il file XML opportunamente aggiornato.

    Fin qui tutto bene.

    E adesso i problemi...
    1. Il file di Flash "vuole" che il file XML stia nella sua stessa cartella. Non sono riuscito a dirgli di leggere il file XML da un'altra parte. Come si fa?
    Visto che il file XML deve trovarsi in una cartella con i diritti di scrittura (la cartella "public", se facciamo riferimento alla struttura dei siti di un noto hoster), anche il file .swf dovrà trovarsi lì. Preferirei metterlo in un'altra cartella.

    2. Se richiamo da broswer il file di Flash: www.miosito.it/public/file.swf, il file viene mostrato e funziona tutto bene (si vedono le immagini). Se, invece, inserisco il file in un file html o asp (che ovviamente si trova in un'altra cartella), non si vedono le immagini.

    3. Com'è possibile modificare l'AS in modo che le immagini vengano mostrare in modo casuale? Immagino che si debba usare una funzione random, ma non so né come, né dove.


    Questo è l'AS che c'è nel file di Flash.
    codice:
    #initclip
    ImageFader = function () { this.__init__();};
    ImageFader.prototype = new MovieClip();
    // ** init class ** //
    ImageFader.prototype.__init__ = function() {
    	this._xscale = 100;
    	this._yscale = 100;
    	this.bounding_box.unloadMovie();
    	this._fader_.unloadMovie();
    	this._dataProvider = new Array();
    	this._count = 0;
    	this._depth = 1;
    	this._isLoaded = -1;
    	if (this._S_) {
    		clearInterval(this._S_);
    	}
    	if (this._xmlfile != "") {
    		this.loadXML(this._xmlfile);
    	}
    };
    // *** load the external xml ** //
    ImageFader.prototype.loadXML = function(x) {
    	var _xml = new XML();
    	_xml.ignoreWhite = true;
    	_xml.path = this;
    	_xml.load("/public/images.xml");
    	_xml.onLoad = function() {
    		for (var a = 0; a<this.firstChild.childNodes.length; a++) {
    			var _trans = this.firstChild.childNodes[a].attributes.TRANSITION;
    			var _pause = this.firstChild.attributes.PAUSE;
    			var _img = this.firstChild.childNodes[a].firstChild.nodeValue;
    			this.path._dataProvider.push({img:_img, transition:_trans, pause:_pause});
    		}
    		this.path.startFading();
    		delete this;
    	};
    };
    // ** start fading procedure ** //
    ImageFader.prototype.startFading = function() {
    	if (this._dataProvider.length>0) {
    		this.makeFader(true);
    	}
    };
    // ** load images ** //
    ImageFader.prototype.makeFader = function(first) {
    	this._isLoaded = -1;
    	this._tmp = this.attachMovie("ImageLoader", "ImageLoader"+this._depth, this._depth++);
    	this._old1 = this['ImageLoader'+(this._depth-1)];
    	this._old2 = this['ImageLoader'+(this._depth-2)];
    	this._tmp.loadHandler("isLoaded", this._count);
    	this._tmp.autoStart = false;
    	this._tmp.transition = this._dataProvider[this._count].transition;
    	this._tmp.loadImage(this._dataProvider[this._count].img);
    	this._t1 = getTimer();
    	this.onEnterFrame = function() {
    		this._t2 = getTimer();
    		if ((this._t2-this._t1)>this._dataProvider[this._count].pause || first == true) {
    			if (this._isLoaded == this._count || this._isLoaded == 1 && this._count == 0) {
    				delete this.onEnterFrame;
    				this._tmp.start();
    				this._old1.fadeOut();
    				this._old2.removeMovieClip();
    				if (this._count+1<this._dataProvider.length) {
    					this._count++;
    					this.makeFader();
    					return;
    				} else {
    					if (this._loop == true) {
    						this._count = 0;
    						this.makeFader();
    					}
    				}
    			}
    		}
    	};
    };
    // ** which has been loaded ? ** //
    ImageFader.prototype.isLoaded = function(num) {
    	this._isLoaded = num;
    };
    Object.registerClass("ImageFader", ImageFader);
    #endinitclip
    Grazie!

  2. #2

    percorsi?

    Ciao, non ho letto tutto il codice, cmq sei sicuro che il percorso che hai dato all'swf sia corretto? Sai che il percorso è determinato dalla pagina html che incorpora il filmato?
    Cioè non importa dove si trova il file swf richiamato dalla pagina html, il percorso sarà sempre partendo dalla pagina e non da dove si trova l'swf...

    ciao
    La tipografia online facile e veloce per privati ed aziende
    www.prontografica.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Ciao e grazie per la risposta.

    Nel frattempo ho risolto...

    Se hai tempo di guardare il codice, invece... hai idea di come sia possibile mostrare le immagini con sequenza casuale?

    Ciao!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Scusate se faccio up... ma lo faccio!!!

    Nessuna idea?

    Se diventa difficile modificare l'AS, secondo voi, è possibile far leggere le foto direttamente da un file ASP? Se fosse possibile, e se ad ogni caricamento della barra, venisse chiamato dal server il file ASP, potrei fare una modifica allo script ASP e fargli leggere le immagini presenti nella cartella sul server, scriverle nel DB e poi "restituirle" al file di Flash in ordine casuale.

    Ciao!

  5. #5
    ciao se non mi sto sbagliando quel file che hai trovato è un componente...

    se è quello e credo di non sbagliarmi, se tu selezioni il componente, che dovrebbe essere un rettangolo bianco contrassegnato da una sorta di X sopra, istanziato come _fader,nel pannello proprietà clikka sul TAB parameters e troverai il percorso del file xml , la voce da cambiare è xmlfile tu basta che sostituisci il nome che c'è adesso con il tuo percorso e il gioco è fatto....

    ricordati che il percorso è in base alla pagina html che incorpora il flash che viene calcolato e non in base all'effettiva posizone dell'swf
    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
    Originariamente inviato da enigma_79
    ciao se non mi sto sbagliando quel file che hai trovato è un componente...

    se è quello e credo di non sbagliarmi, se tu selezioni il componente, che dovrebbe essere un rettangolo bianco contrassegnato da una sorta di X sopra, istanziato come _fader,nel pannello proprietà clikka sul TAB parameters e troverai il percorso del file xml , la voce da cambiare è xmlfile tu basta che sostituisci il nome che c'è adesso con il tuo percorso e il gioco è fatto....

    ricordati che il percorso è in base alla pagina html che incorpora il flash che viene calcolato e non in base all'effettiva posizone dell'swf
    scusa ma non avevo visto che avevi risolto... ciao
    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Ciao!

    Grazie per la risposta.

    Allora, ho risolto il primo problema ma, non so se hai letto i miei post successivi, adesso avrei l'esigenza di far mostrare le immagini in maniera casuale.

    E' una cosa fattibile cambianto "qualcosa" in Flash, oppure potremmo optare per la mia seconda soluzione (come ho descritto nell'altro mio post di oggi)?

    Mille grazie!

  8. #8
    fai prima a cambiare l'xmll con asp... perchè quel componente ha 9 tipi di transizioni cmq devi fare in modo che illoadMovie che va a fare lo faccia random e non sequenziale... fattibiile ma ssarebbero da vedere i codici... se lo fai direttamente da asp passi i valori in maniera random e risolvi più facilmente...

    ciao
    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

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Re: Problema Flash con XML

    Originariamente inviato da Roby140569
    Premetto che uso pochissimo (e male) Flash... :master:
    Mi cito e ti rispondo...

    Proprio per quanto scritto nella citazione... ehm... come gli faccio leggere il file ASP?

    E poi, vorrei sapere, se riesco a fargli leggere il file ASP.
    Tu sai se il file ASP viene richiamato dal file di Flash ad ogni reload della pagina? Questo è fondamentale, perché, la mia pagina in ASP, in base ad una funzione Random, mi restuisce i record in ordine casuale, ogni volta che viene chiamata. Ma se il file di Flash non me la richiama ogni volta, il tutto non funziona.

    Thanx again!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Faccio scrivere "al volo" il file XML al load della pagina che contiene il filmato in Flash, grazie all'inserimento nella pagina stessa dello script ASP che aggiorna il file XML.

    Unico dubbio: il file XML viene riscritto ad ogni load di tutte le pagine del sito, non sarà un carico di lavoro eccessivo per il server?

    Il caricamento random delle immagini da Flash non so proprio come farlo...

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.