Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema Array

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Problema Array

    Se srivo sulla linea temporale questo script:

    testo_uno="Prova";
    testo_due="testo_uno";
    variabile=this[testo_due];
    trace(variabile);

    giustamente avrò come risultato: "Prova" in quanto viene trasformato in variabile il valore di testo due che è "testo_uno" per cui a sua volta il testo_uno ha valore "Prova" ed ecco il risultato.

    Ora mi chiedo...perchè se scrivo invece:

    ciao="via";
    pippo="ciao";
    btn.onRelease=function(){
    variabile=this[pippo];
    trace(variabile);
    }

    anzichè darmi come risultato "via" mi viene fuori "undefined"????
    Non è lo stesso ragionamento di prima???

  2. #2
    xChè

    pippo non è una variabile che appartiene al bottone
    codice:
    ciao="via"; 
    pippo="ciao"; 
    
    btn.onRelease=function(){ 
       variabile=this [pippo]; 
       trace(variabile); 
    }

    a parte il fatto che forse se dentro pippo deve andare il contenuto di ciao, io scriverei

    pippo = ciao // senza virgolette

    e se pippo sta su level0. o su _root.
    dentro btn.onRelease

    o scrivi il riferimento assoluto o utilizzi il _parent

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    Perchè dovrei togliere le virgolette se nel primo esempio:

    testo_uno="Prova";
    testo_due="testo_uno";
    variabile=this[testo_due];
    trace(variabile);

    le virgolette ci sono e funziona???
    Le parentesi quadre servono proprio a trasformare in variabile una stringa....e se questa stringa non è.....
    La terza riga dello script qui sopra dice:
    valore = il contenuto di testo_due (ovvero "testo_uno")trasformato in variabile, ovvero testo_uno senza virgolette.

    Allora perchè non dovrebbe fare la medesima cosa anche con l'esempio 2 ??

  4. #4
    hai provato a fare come ti ho detto ??

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    Come mi hai detto tu funziona...ma non è questo il punto....il punto è cercare di capire per quale cacchio di motivo nell'altro modo non va...


    Un esercizio di action script mi fa scrivere questo script sul primo fotogramma:



    //lunedi------
    //Previsioni del tempo
    lunedi = new Object();
    lunedi.date = "lunedi' 25 Agosto 2005";
    lunedi.temperatura = new Array();
    lunedi.temperatura[0] = "pioggia";
    lunedi.temperatura[1] = "Giornata brutta";
    lunedi.temperatura[2] = "20°";
    lunedi.temperatura[3] = "15°";
    //intrattenimento
    lunedi.intrattenimento = new Array();
    lunedi.intrattenimento[0] = "MTV è sul 22";
    lunedi.intrattenimento[1] = "La popolare rete MTV compie 22 anni!";
    lunedi.intrattenimento[2] = "Giuseppe Ferrero";
    //politica
    lunedi.politica = new Array();
    lunedi.politica[0] = "Elezioni presidenziali 2006";
    lunedi.politica[1] = "I candidati preparano la campagna elettorale";
    lunedi.politica[2] = "Buone elezioni";
    //sport
    lunedi.sport = new Array();
    lunedi.sport[0] = "Il grande tennis";
    lunedi.sport[1] = "Wimbledon è il più popolare torne di tennis del circuito";
    lunedi.sport[2] = "Ivan Lendl";
    //tecnologia
    lunedi.tecnologia = new Array();
    lunedi.tecnologia[0] = "Processore Penthium";
    lunedi.tecnologia[1] = "I processori Penthium sono i più veloci e affidabili";
    lunedi.tecnologia[2] = "Diego Cottino";
    //martedi-----
    martedi = new Object();
    martedi.date = "martedi' 26 Agosto 2005";
    martedi.temperatura = new Array();
    martedi.temperatura[0] = "sereno";
    martedi.temperatura[1] = "Bella giornata";
    martedi.temperatura[2] = "28°C";
    martedi.temperatura[3] = "20°C";
    //intrattenimento
    martedi.intrattenimento = new Array();
    martedi.intrattenimento[0] = "Play boy";
    martedi.intrattenimento[1] = "Le + belle fiche";
    martedi.intrattenimento[2] = "Giuseppe Ferrero";
    //politica
    martedi.politica = new Array();
    martedi.politica[0] = "Nessun bambino andrà a scuola";
    martedi.politica[1] = "La scuola protesta";
    martedi.politica[2] = "Diego Cottino";
    //sport
    martedi.sport = new Array();
    martedi.sport[0] = "Americas cup";
    martedi.sport[1] = "La gara sarà svolta in Svizzera";
    martesi.sport[2] = "Ivan Lendl";
    //tecnologia
    martedi.tecnologia = new Array();
    martedi.tecnologia[1] = "Il processore Duron è meno buono del Penthium";
    martedi.tecnologia[0] = "Processore Duron";
    martedi.tecnologia[2] = "Pippo";

    giorno = "lunedi";
    sezione = "intrattenimento";


    Sul quarto fotogramma c'è invece questo script:

    stop();
    refresh();
    function refresh (){
    date.text = this[giorno].date;
    days_mc.gotoAndStop (this [giorno]);
    icon_mc.gotoAndStop(this[giorno].temperatura[0]);
    testo_sole.text = this[giorno].temperatura[1];
    high.text = this[giorno].temperatura[2];
    low.text = this[giorno].temperatura[3];
    headline.text = this[giorno][sezione][0];
    article.text = this[giorno][sezione][1];
    autore.text = this[giorno][sezione][2];


    }

    Quando il filmato arriva al quarto fotogramma il comando refresh(); aziona la function refresh la quale dice ad esempio nella prima riga:
    date.text= this.[giorno].date;
    Lui come lo interpreta?
    date.text=lunedi.date;
    Perchè lunedi??
    Perchè trasforma in variabile il valore della variabile "giorno" contenuta sul primo fotogramma OK???
    E allora, torno a ripetere...perchè non dovrebbe fare la medesima cosa con quello script che ho scritto nel primo thread???

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    Attenzione...mi sono accorto di una cosa.

    Se scrivo:

    ciao="via";
    pippo="ciao";
    btn.onRelease=function(){
    variabile=_root[pippo];
    trace(variabile);
    }

    questi funziona.....
    Allora dovresti gentilmente farmi capire l'interpretazione del this.
    Come vedi in quello script lungo quanto il vangelo viene usato this...ma perchè????
    I valori di "giorno" e di "sezione" sono anche in questo caso contenuti sulla _root......e allora perchè funziona il comando this, mentre nello scriptino mio devo mettergli _root?????


    Grazie.

  7. #7
    Bene vede che sei arivato alla conclusione.

    te lo ripeto

    se tu hai (posizionato sulla root) un clip che si chiama "casa" e dentro hai un subclip che si chiama "stanza_letto"

    per far riferimento a "stanza_letto" nei seguenti modi

    _level0.casa.stanza_letto
    o
    _root.casa.stanza_letto

    e questo lo chiamerei un riferimento assoluto.

    se per caso volessi trattare la "casa" come un bottone, cosa faresti ??

    codice:
    casa.onRollOver=function(){
          // azioni
    }
    bene supponiamo che al rollOver il subclip "stanza_letto" lo volessimo mandare in alpha=0

    codice:
    casa.onRollOver=function(){
           this.stanza_letto._alpha=0
    }
    e sarebbe lo stesso che scrivere

    codice:
    _root.casa.stanza_letto._alpha=0
    appare evidente che con il this. eliminiamo _root.casa

    Ora tutto questo è vero se facciamo riferimento a qualcosa che sta
    dentro "casa".

    Nel tuo caso invece la variabile è posizionata sulla root e non dentro il bottone, quindi il this è sbagliato.

    puoi quindi utilizzare il riferimento assoluto oppure il _parent.

    Quando scrivio un function, se la scrivi sulla root e non ci sono riferimenti ad oggetti

    dovento trattare il contenuto di una variabile che si chiama "giorno"

    puoi scrivere

    _root[giorno] oppure this[giorno] perchè in entrambe le soluzioni fai sempre riferimento alla root.

    Spero di averti chiarito il concetto.

    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,628

    Re:

    Ok buona....con un po'di pratica.
    Continuo a chiedermi a cosa mai mi servirà imparare tutte queste cose....
    Il problema + grosso credo stia poi nel sfruttarle....
    Riesco a capire gli esempi del libro....ma quando poi hai in testa di fare un qualcosa di tuo non sai mai da che parte cominciare....

  9. #9
    + esperienza, + pratica, + forum, + libro = buon livello.


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.