|
|
| Autore |
Messaggio |
VinS
principiante


Registrato: 02/02/05 22:17
Messaggi: 56
Località: Cesenatico (FC)
|
Oggetto: funzioncina che non va...
Inviato: 06.02.05 | 22:56 |
|
|
Ciao
Dopo avervi disturbato con un topic ne apro un altro per una cosa che per voi sarà banale ma a me proprio non riesce... sarà che ho appena iniziato con action script
allora ho una funzione per caricare variabili da una pagina asp:
| Codice: | function carica(pagina ){
txt = new LoadVars();
txt.load(pagina);
txt.ignoreWhite = true;
txt.onLoad = function(success) {
if (success) {
titolo = eval("this.titolo");
testo = eval ("this.testo");
_root.titolo.text=titolo;
_root.testo.text=testo;
}
}
} |
e richiamo la funzione con pulsanti a cui associo questo codice:
| Codice: | on (release) {
function carica ( "sito.asp?var=dove_i&var2=dove_titolo_i")
} |
sarà una cavolata ma dove sbaglio?
PS: qualcuno mi consiglia un buon libro per action script? |
|
| Torna in cima |
|
|
Sponsor
|
|
 |
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 07.02.05 | 13:13 |
|
|
ciao,
sbagli la sintassi...
per dichiarare una funzione fa fatto giustamente:
| Codice: | function nomefunzione(){
...
} |
mentre per richiamarla devi fare solamente:
Nella dichiarazione della funzione puoi tralasciare le 2 righe con l'eval() e quindi fare solamente:
| Codice: | if(success){
_root.titolo.text = this.titolo;
_root.testo.text = this.testo;
} |
Non saprei consigliarti un buon manuale di AS (dipende se vuoi as o AS2, se italiano o inglese) xò consiglio sempre l'uso della guida di Flash (F1). ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
VinS
principiante


Registrato: 02/02/05 22:17
Messaggi: 56
Località: Cesenatico (FC)
|
Oggetto:
Inviato: 07.02.05 | 13:18 |
|
|
Grazie per la rispota
ma io gli devo passare una variabile alla funzione che è la pagina da caricare... |
|
| Torna in cima |
|
|
magodellaneve
intermedio


Registrato: 18/05/04 00:28
Messaggi: 184
Località: Verona
|
Oggetto:
Inviato: 09.02.05 | 13:10 |
|
|
si, quindi la funzione la vedi richiamare così
| Codice: | on (release) {
carica( "sito.asp?var=dove_i&var2=dove_titolo_i");
} |
e non | Codice: | on (release) {
function carica ( "sito.asp?var=dove_i&var2=dove_titolo_i");
} |
senca "function" davati.. quello serve solo quando la dichiari
ciauz |
|
| Torna in cima |
|
|
VinS
principiante


Registrato: 02/02/05 22:17
Messaggi: 56
Località: Cesenatico (FC)
|
Oggetto:
Inviato: 09.02.05 | 13:23 |
|
|
Ok sono riuscito a farla funzionare mettendo funzione e richiamo della funzione tutto all'interno dello stesso mc ed esattamente:
FUNZIONE:
| Codice: | function carica(pagina) {
dati = new LoadVars();
dati.path = this._parent.scritta;
dati.onLoad = function(success)
{
if (success)
{
for (var prop in this)
{
this.path[prop + "_txt"].htmlText = this[prop].split("\r\n").join("");
}
} else
{
this.path.nome_txt.text = "file inesistente";
}
};
ASSetPropFlags(dati, ["onLoad", "path"], 7);
dati.load(pagina+"&rnd="+random(999999));
} |
RICHIAMO DA PULSANTE:
| Codice: | on (release) {
carica("sito.asp?var=hotel_i&var2=hotel_titolo_i");
} |
così funziona egregiamente ma io mi chiedevo, non riesco a rendere disponiible una funzione a livello globale? Se io metto la funzione nel primo frame del filmato e poi la richiamo dal pulsante (che è dentro un MC)... non va!
Non è un grosso problema ma mi piacerebbe capire
grazie a tutti |
|
| Torna in cima |
|
|
magodellaneve
intermedio


Registrato: 18/05/04 00:28
Messaggi: 184
Località: Verona
|
Oggetto:
Inviato: 10.02.05 | 10:04 |
|
|
ogni cosa in flash esite all'interno di un proprio "ambito",
presente le scatole cinesi?
un clip ne contiene un altro, che a suo volta ne contiene altri 2 ecc quando richiami una funzione devi specificare in quale "scatola" essa si trovava nel momento in quando l'hai dichiariata.
per specificare la scatola ci sono vari metodi:
scatola esterna al tutto (_root) :
_root.nomefunzione();
scatola superiore a quella in qui mi trovo (_parent) clip contenuto in _root dal quale voglio richiamare la funzione:
_parent.nomefunzione();
se invece voglio riferirmi a una scatola + piccola di quella in cui mi trovo devo specificarne il nome, nome di tale scatole è il nome dell'istanza della stessa.
è più facile da capire che da spiegare heheh.. spero non averti fatto troppa confusione .. ciauz |
|
| Torna in cima |
|
|
VinS
principiante


Registrato: 02/02/05 22:17
Messaggi: 56
Località: Cesenatico (FC)
|
Oggetto:
Inviato: 10.02.05 | 10:37 |
|
|
Ciao
ti ringrazio della spiegazione, ho capito tutto
Ma non è possibile rendere una funzione (per es.) disponibile in qualsiasi 'ambito', cioè dichiararla per esempio nel primo frame con la caratteristica di essere disponibile con un sepmlice richiamo (senza percorso) da qualsiasi scatola? Scusami ma la mia è solo una curiosità...
Altra cosa: 'this' invece si riferisce all'ambito specifico di una classe?
ciao e grazie |
|
| Torna in cima |
|
|
cli
moderatore


Registrato: 10/02/04 15:55
Messaggi: 402
Località: Padova
|
Oggetto:
Inviato: 10.02.05 | 11:00 |
|
|
eh eh ciao Vins, si, si può rendere globale una variabile, però è sconsigliato perchè è facile incappare in errori e confusionarla: fin che la cosa (codice) è semplice va, ma quando e molto complessa puo essere facile "sbagliarla".
Comunque non sono esperto come Coach o Mago che ne sanno di più  |
|
| Torna in cima |
|
|
|