|
|
| Autore |
Messaggio |
vox
principiante


Registrato: 23/02/04 15:02
Messaggi: 30
|
Oggetto: Actionscript e variabili
Inviato: 12.05.04 | 22:02 |
|
|
Aiuto!!!
ho una movie che carica delle variabili in xml (grazie Coach) e fino a qui tutto ok (ci sono riuscito!!!!)
ora vorrei trovare un modo semplice per passare delle variabili (almeno credo)
insomma
pagina1.htm con movie1 (questa è quella che funziona e carica le varibili tramite xml)
ora devo creare una pagina2.htm con movie2, pensavo che potesse andar bene cosi... creo una combo box in flash che prende i dati da un file di testo esterno(lo creo io manualmente) in questo file c'è una lita di file xml contenuti in una cartella
dunque ci siamo vorrei che ogni volta che seleziono una pagina xml dalla combo.... questo nome della pagina viene sparato come variabile alla pagina1.htm con movie 1
Es.
seleziono nella combo prova.xml
mi ritrovo nel codice del movie 1
mio_xml = new XML();
mio_xml.ignoreWhite = true;
nodo = this.firstChild.childNodes;
mio_xml.onLoad = function(success) {
if (success) {
nodo = mio_xml.firstChild.childNodes;
for (i=0; i<mio_xml.childNodes[0].attributes.totale; i++) {
_root.attachMovie("puls", "puls"+i, i);
_root["puls"+i]._y = i*32;
_root["puls"+i].nome.text = nodo[i].attributes.nome;
_root["puls"+i].nome._x = 2;
_root["puls"+i].nome._yscale = 80;
_root["puls"+i].campo3.text = nodo[i].attributes.campo3;
_root["puls"+i].campo3._x = 90;
_root["puls"+i].campo3._yscale = 80;
_root["puls"+i].campo4.text = nodo[i].attributes.campo4;
_root["puls"+i].campo4._x = 145;
_root["puls"+i].campo4._yscale = 80;
_root["puls"+i].campo4._width = 500;
_root["puls"+i].campo5.text = nodo[i].attributes.campo5;
_root["puls"+i].campo5._x = 530;
_root["puls"+i].campo5._yscale = 80;
_root["puls"+i].campo6.text = nodo[i].attributes.campo6;
_root["puls"+i].campo6._x = 630;
_root["puls"+i].campo6._yscale = 80;
_root["puls"+i].campo7.text = nodo[i].attributes.campo7;
_root["puls"+i].campo7._x = 710;
_root["puls"+i].campo7._yscale = 80;
_root["puls"+i].campo8.text = nodo[i].attributes.campo8;
_root["puls"+i].campo8._x = 800;
_root["puls"+i].campo8._yscale = 80;
_root["puls"+i].campo9.text = nodo[i].attributes.campo9;
_root["puls"+i].campo9._x = 870;
_root["puls"+i].campo9._yscale = 80;
colore = new Color(_root["puls"+i].mc);
colore.setRGB(nodo[i].attributes.colore);
_root["puls"+i].mc._width = 158;
}
} else {
this.path.testo = "caricamento errato";
}
};
mio_xml.load("prova.xml");
stop();
e cosi via via che seleziono nuove pagine xml nella combo... mi varia il nome della pagina xml nel codice di sopra!!!
Spero di essere stato chiaro!!!
ciao e grazie |
|
| Torna in cima |
|
|
Sponsor
|
|
 |
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 12.05.04 | 23:35 |
|
|
ciao,
proprio chiaro chiaro nn lo sei stato
nn ho ben capito quel passaggio da pagina1.html a pagina2.html
cosa devi fare di preciso???
vuoi mettere una combobox e alla selezione caricare dati da un diverso XML???
potresti fare tutto in un filmato caricando in un primo frame i dati dal primo XML, una volta caricati passi ad un frame successivo in cui li visualizzi assieme alla combobox.
Alla scelta dell' XML da caricare cioè gestendo la proprietà setChangeHandler() fai tirnare al primo frame e passi come valore il nome dell' XML in modo da caricare quest'ultimo nel mio_xml.load(); ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
vox
principiante


Registrato: 23/02/04 15:02
Messaggi: 30
|
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
|
| Torna in cima |
|
|
vox
principiante


Registrato: 23/02/04 15:02
Messaggi: 30
|
Oggetto:
Inviato: 13.05.04 | 14:26 |
|
|
Allora coach ho pensato di fare cosi!!!
sul primo frame combo con istanza myCombo1
e codice sul frame
elenco = new LoadVars();
// Carico
elenco.load("lista.txt ");
// Assegno
elenco.onLoad = function(success) {
for (i=0; i<=Number(this.item); i++) {
elemento = this["xdata"+i];
link = this["url"+i];
_root.myCombo1.addItemAt(i, elemento, link);
}
};
// controllo cambio valore
comboBox = new Object();
comboBox.cambia = function(component) {
getURL(myCombo1.getSelectedItem().data, "_blank");
};
//chiamo la funzione al cambio
myCombo1.setChangeHandler("cambia", comboBox);
nel file lista.txt avrò
&item=5&
&xdata0=seleziona data
&xdata1=uno.xml
&xdata2=due.xml
&xdata3=tre.xml
&xdata4=quattro.xml
&xdata5=cinque.xml
ora mi serve capire come cambiare nel codice
getURL(myCombo1.getSelectedItem().data, "_blank");
e inserire la variabile sul secondo frame (quello che carica xml)
come dal tuo script che mi hai scritto tempo fà
mio_xml = new XML();
mio_xml.ignoreWhite = true;
nodo = this.firstChild.childNodes;
mio_xml.onLoad = function(success) {
if (success) {
nodo = mio_xml.firstChild.childNodes;
for (i=0; i<mio_xml.childNodes[0].attributes.totale; i++) {
_root.attachMovie("puls", "puls"+i, i);
_root["puls"+i]._y = i*32;
_root["puls"+i].nome.text = nodo[i].attributes.nome;
_root["puls"+i].nome._x = 2;
_root["puls"+i].nome._yscale = 80;
_root["puls"+i].campo3.text = nodo[i].attributes.campo3;
_root["puls"+i].campo3._x = 90;
_root["puls"+i].campo3._yscale = 80;
_root["puls"+i].campo4.text = nodo[i].attributes.campo4;
_root["puls"+i].campo4._x = 145;
_root["puls"+i].campo4._yscale = 80;
_root["puls"+i].campo4._width = 500;
_root["puls"+i].campo5.text = nodo[i].attributes.campo5;
_root["puls"+i].campo5._x = 530;
_root["puls"+i].campo5._yscale = 80;
_root["puls"+i].campo6.text = nodo[i].attributes.campo6;
_root["puls"+i].campo6._x = 630;
_root["puls"+i].campo6._yscale = 80;
_root["puls"+i].campo7.text = nodo[i].attributes.campo7;
_root["puls"+i].campo7._x = 710;
_root["puls"+i].campo7._yscale = 80;
_root["puls"+i].campo8.text = nodo[i].attributes.campo8;
_root["puls"+i].campo8._x = 800;
_root["puls"+i].campo8._yscale = 80;
_root["puls"+i].campo9.text = nodo[i].attributes.campo9;
_root["puls"+i].campo9._x = 870;
_root["puls"+i].campo9._yscale = 80;
colore = new Color(_root["puls"+i].mc);
colore.setRGB(nodo[i].attributes.colore);
_root["puls"+i].mc._width = 158;
}
} else {
this.path.testo = "caricamento errato";
}
};
mio_xml.load("nome file scelto dalla combo del frame 1");
stop();
grazie!!!
| Coach ha scritto: | istanzia la combobox come "combo"
e cerai un'azione del genere:
| Codice: | combo.setChangeHandler("cat");
function cat(component){
categoria = combo.getSelectedItem().data;
gotoAndPlay("frame dove carichi l'XML");
//trace("GET = "+combo.getSelectedItem().data);
} |
così alla scelta della voce del menu ritorni al frame dove carichi l'XML passando il valore (che sarà il nome dell'XML)
e nel frame dove carichi i dati fai:
mio_xml.load(categoria); |
|
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 13.05.04 | 19:21 |
|
|
bene, ma xchè fai quel getURL?
xchè devi cambiare pagina??? ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
vox
principiante


Registrato: 23/02/04 15:02
Messaggi: 30
|
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 13.05.04 | 19:31 |
|
|
hai provato a fare come ti ho scritto qui sopra?
a me sembra il metodo migliore... rimandi al frame di caricaggio dati, passando come valore il nome dell'XML da caricare... ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
vox
principiante


Registrato: 23/02/04 15:02
Messaggi: 30
|
Oggetto:
Inviato: 13.05.04 | 19:39 |
|
|
Scusami della mia ignoranza coach... non voglio discutere il tuo script!! ma da quello che ho capito... con il tuo script mi vuoi rimandare ad u frame dove è già imostato il caricamento della pagina xml?..
Cioè
combo frame
uno.xml 1(questo frame carica uno.xml )
due.xml 2(questo frame carica due.xml)
tre.xml 3(questo frame carica tre.xml)
Giusto?..... se è cosi non è quello che voglio fare!!!. io vorrei una cosa del genere
Cioè
combo frame
uno.xml 1(questo frame carica quello selezionato dalla combo, dal codice che avevamo fatto in precedenza(guarda gli altri thead) )
due.xml
tre.xml
| Coach ha scritto: | hai provato a fare come ti ho scritto qui sopra?
a me sembra il metodo migliore... rimandi al frame di caricaggio dati, passando come valore il nome dell'XML da caricare... |
|
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 14.05.04 | 08:58 |
|
|
no no no...
io ti ho detto di fare un unico frame con un unico codice di caricamento dati dall'XML e con la combo box passi solo il nome da far caricare a seconda della scelta della combo... ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
vox
principiante


Registrato: 23/02/04 15:02
Messaggi: 30
|
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 14.05.04 | 10:20 |
|
|
infatti come in quello che hai quotato ti avevo scritto di mettere nel primo frame il codice x caricare i dati, mentre nel secondo la visualizzazione dei dati + la combo box, che alla scelta di quest'ultima facevi tornare al primo frame (dove ricaricavi i dati) passando il nome dell'XML che poi andrà in:
mio_xml.load(valore passato dalla combobox); ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
vox
principiante


Registrato: 23/02/04 15:02
Messaggi: 30
|
Oggetto:
Inviato: 14.05.04 | 10:38 |
|
|
Infatti ho provato la tua soluzione... che rimane quella piu semplice, ma quendo attivo il trace che mi hai suggerito.... mi visualizza GET = se elimino la parte del get mi dice indefinita.... come faccio a vedere come si chiama la variabile e cosa scrivo tra le parentesi di
mio_xml.load(valore passato dalla combobox);
per richiamare la variabile?
| Coach ha scritto: | infatti come in quello che hai quotato ti avevo scritto di mettere nel primo frame il codice x caricare i dati, mentre nel secondo la visualizzazione dei dati + la combo box, che alla scelta di quest'ultima facevi tornare al primo frame (dove ricaricavi i dati) passando il nome dell'XML che poi andrà in:
mio_xml.load(valore passato dalla combobox); |
|
|
| Torna in cima |
|
|
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 14.05.04 | 12:07 |
|
|
se il trace ti da:
GET =
vuol dire che la combo box è vuota o nn ha un valore (data) associato al label ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Ultima modifica di Coach il 14.05.04 | 12:14, modificato 1 volta in totale |
|
| Torna in cima |
|
|
vox
principiante


Registrato: 23/02/04 15:02
Messaggi: 30
|
Oggetto:
Inviato: 14.05.04 | 12:14 |
|
|
Bene!!!
Come faccio a trovare il label??
| Coach ha scritto: | se il trace ti da:
GET =
vuol dire che la combo box è vuota o nn ha un valore (data) associato al label |
|
|
| Torna in cima |
|
|
|