Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    3

    istanze dinamiche tramite attachMovie() e gestione di più eventi

    buona sera!
    innanzi tutto un saluto a tutti visto che questo è il mio primo post

    Premetto che mi sono avvicinato da pochissimo alla programmazione action script, ma comunque sia conosco linguaggi di programmazione ad oggetti e scripting java.

    cercherò di non spiegarvi tutto il mio problema ma spero risolviate il mio dubbio-problema che da più di 3 giorni mi sta facendo impazzire.

    concettualmente,
    tramite un ciclo for creo dinamicamente:

    -n istanze di n bottoni ( preso come bottone "base" uno che ho in libreria), attraverso la funzione attachMovie();

    -n istanze di n textbox sempre attraverso la funzione attachMovie();

    dopodichè dovrei assegnare ad ogni bottone una funzione che venga richiamata al verificarsi di un evento ( onRollOver .. ecc)

    i bottoni, dopo essere istanziati si chiamano b1, b2, b3 ...
    perciò per quanto riguarda la gestione dell'evento faccio sempre in un ciclo for,


    _root["b"+i].onRollOver = function() {
    _root["t"+i].testo1._visible=true; }

    dove testo1 è il nome istanza della textBox in libreria.. e t1,t2, "t"+i sarebbero le texBox istanziate dinamicamente.

    dalle prove effettuate, sembrerebbe che tutti i bottoni assumano la stessa function() associata alla "i" con valore d'uscita dal ciclo for.

    esempio,

    istanzio 3 bottoni. ( b1, b2, b3)
    istanzio 3 textBox. ( t1, t2, t3)

    setto visible false il testo delle 3 text.

    associo evento onRollOver a b1, b2 ,b3 che dovrebbe rendere visible true la textBox associata al bottone ,al passaggio del cursore ( b1.onRollOver --> t1._visible= true; )

    __________________risultato ?

    ogni bottone assume la stessa funzione al verificarsi dell'evento, e come indice i i il valore 4!!! quando il for va da 1 a 3 .. ( for(i=1;i<=3;i++) {...} )

    in parole semplici, tutte i bottoni al verificarsi dell'evento chiamano una funzione che è fatta a grandi linee così

    t4._visible = true;

    Spero mi sia fatto capire, e spero che qualcuna mi possa aiutare a risolvere il problema , o almeno a chiarirmi la logica per cui succede tutto ciò!

    Ci ho perso giorni tra ricerche e un piccolo manuale ma non sono riuscito a risolvere il problema!

    grazie mille
    mircoV

  2. #2
    prova a fare una cosa del genere .. dato che onRollover come onRelease sono eventi distruttori

    _root["b"+i].num=i
    _root["b"+i].onRollOver = function() {
    _root["t"+this.num].testo1._visible=true;
    }


    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    3
    Non ci credo, funziona!!!

    Ti ringrazio vivamente, se hai tempo e spiegarmi qualcosina in più del significato "distruttori" te ne sarò ulteriormente grato, altrimenti basta così.

    Erano veramente 3 giorni che ci provavo ore e ore senza nessun risultato, non avevo più idee.

    questo attributo num quindi starebbe per.. ??


    grazie ancora!!!

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao

    Credo che crescenzo intendesse dire che l'evento onRollover è "asincrono"..

    Avevo indicato qualcosa in questo vecchio post, per un problema analogo: http://forum.html.it/forum/showthrea...4#post11479394

    Nell'esempio che ti ha indicato crescenzo, "num" non è altro che una variabile che viene assegnata alle varie istanze bottone in modo che ogni singola istanza possa in seguito (al determinarsi dell'evento onRollOver) accedere autonomamente al valore passato (questo perché tale valore è memorizzato all'interno dell'istanza stessa).

    Mentre un evento, o meglio, un metodo "distruttivo" potrebbe ad esempio essere loadMovie..
    Ecco una vecchia discussione dove se ne è parlato: http://forum.html.it/forum/showthrea...readid=1140111


    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    beh scusami ...per il ritardo...e per il mio grossolano errore di scrittura (distruttivo era asincrono)

    >Credo che crescenzo intendesse dire che l'evento onRollover è "asincrono"..

    come giustamente faceva notare KillerWorm nn so da dove mi è uscito distruttivo mea culpa .....che è legato al loadMovie e non centra niente in questo caso

    ecco xchè non usando la var num ottenevi sempre l'ultimo valore del ciclo for...

    cmq KillerWorm ha spiegato in maniera esaustiva la cosa quindi è inutile aggiungere altro ..



    @KillerWorm
    grazie x la correzione .... a volte la stanchezza fa brutti scherzi
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    No problem

    L'importante è che sia chiaro a vaa03.

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    3
    eccomi! scusatemi ma non ho molto tempo libero ultimamente!

    comunque tutto chiaro, grazie a tutti per le spiegazioni.
    Praticamente quella variabile num appartiene all'istanza del bottone, quindi rimane in qualche modo "legato" il valore di "i"

    In effetti pensando all'asincronismo degli eventi il discorso fila, solo che essendo nuovo di action script ( pochi giorni veramente! ) mi ha creato un problema mica da ridere

    comunque ora è tutto perfetto, sono riuscito a finire la piccola applicazione che avevo da fare per il sito di un agenzia viaggi, e ho voluto farlo in flash perchè è ora che impari qualcosa anche io (piuttosto di farlo fare ad altri)!

    se vi può interessare ciò che dovevo fare era una piccola mappa nella quale dovevano crearsi dinamicamente bottoni e nomi delle località presenti in un db dell'agenzia. Se vi serve qualcosa del genere fate un fischio.

    Ringrazio tutti anche per le spiegazioni,
    mirco!

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.