Visualizzazione dei risultati da 1 a 5 su 5

Discussione: trace();

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

    trace();


    buttonNames = ["Parigi", "New York", "Londra"];
    function lista() {

    spacing = dropDownList_mc.item_mc._height+2;
    numberofbotton = buttonNames.length;
    for (i=0; i<numberofbotton; i++) {
    ciccio = "item"+i;
    dropDownList_mc.item_mc.duplicateMovieClip(ciccio, i);
    dropDownList_mc[ciccio].itemName_txt.text = buttonNames[i];
    dropDownList_mc[ciccio]._x = 0;
    dropDownList_mc[ciccio]._y = i*spacing;
    dropDownList_mc[ciccio].pictureID = i+1;
    dropDownList_mc[ciccio].list_btn.onRelease = function() { itemClicked(this._parent.pictureID);
    };
    }
    }


    Perchè se chiedo di scrivere trace(pictureID) mi da come risultato undefined.
    Se provo ad andare a cambiare e scrivere:
    dropDownList_mc[ciccio].pictureID = Number (i+1);
    quando chiedo il trace mi dice Nan??
    E chiedo ancora questo, che ho già chiesto nell'altro thread ma forse qui essendoci tutto lo script lo si capisce meglio.
    Perchè se nelle ultime righe anziche scrivere:

    dropDownList_mc[ciccio].list_btn.onRelease = function() { itemClicked(this._parent.pictureID);
    };


    vado a scrivere:

    dropDownList_mc[ciccio].list_btn.onRelease = function() {
    itemClicked(_root.dropDownList_mc[ciccio].list_btn._parent.pictureID);


    Il comportamento dello script cambia?
    Ho cercato di aiutarmi con il trace per capire che valore prendesse quell'ID...ma come ho scritto prima non riesco a farmelo dare.

    Grazie.
    };

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Cambia perchè dentro l'onRelease la variabile "ciccio" ha il valore impostato per ultimo. Se tracci "ciccio" dal pulsante, cosa esce?

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

    Re:

    Si ma scusa....la funzione onRelease è dentro alla funzione for...
    Lui così facendo al primo giro gli dice che ciccio vale item0..al secondo item1 e al terzo item2.

    Quindi perchè non dovrebbe creare 3 pulsanti con 3 percorsi diversi?
    Se al primo giro ciccio vale item0 e se al fondo dello script scrivo:

    dropDownList_mc[ciccio]
    .list_btn.onRelease = function() { itemClicked(dropDownList_mc[ciccio]
    .list_btn._parent.pictureID);
    };

    non è come se avessi scritto:

    dropDownList_mc.item0
    .list_btn.onRelease = function() { itemClicked(dropDownList_mc.item0
    .list_btn._parent.pictureID);
    };

    Se this non è sostituibilie con dropDownList_mc.item0
    .list_btn
    allora this che percorso è partendo dalla _root??????

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

    Re:

    E aggiungo, leggendo dal libro:

    Quando usi "this" stai dicendo " Con questa linea temporale fai questa azione".

    Ora..nello script di prima qual'è "questa linea temporale"??
    A casa mia torna sempre ad essere:

    dropDownList_mc[ciccio].list_btn

    Capisco benissimo l'utilizzo del termine this per abbreviare....ma se io fossi masochista e volessi scrivere tutto il percorso per intero allora quale dovrei scrivere visto che secondo lui non è questo in quanto mi cambia il comportamento?????

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

    Re:

    Adesso l'ho capito....ammazza se è fine però...
    Quando lui crea il pulsante dall'azione for crea una sua linea temporale con il percorso relativo ad item+valore in quel momento, mentre invece lasciando il percorso per intero richiama solo l'ultimo valore che ha assunto [ciccio]....

    Mamma che tritacervelli però....

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.