Visualizzazione dei risultati da 1 a 7 su 7

Discussione: assegnazione dinamica

  1. #1
    Utente di HTML.it L'avatar di simonah
    Registrato dal
    Jan 2001
    Messaggi
    105

    assegnazione dinamica

    ciao a tutti,
    premetto non sono una programmatrice (quindi mi arrangio come posso )e quindi ho
    ho un quesito che per molti di voi sarà una banalità... allora ho questo codice:

    puls00_btn.onRollOver = function() {
    rollNum = 0;
    rollover(rollNum);
    };
    puls00_btn.onRollOut = function() {
    if (clickNum != 0) {
    rollout(clickNum);
    }

    };
    puls00_btn.onRelease = function() {
    clickNum = 0;
    cilccato(clickNum);
    };
    //----1
    puls01_btn.onRollOver = function() {
    rollNum = 1;
    rollover(rollNum);
    };
    puls01_btn.onRollOut = function() {
    if (clickNum != 1) {
    rollout(clickNum);;
    }
    };
    puls01_btn.onRelease = function() {
    clickNum = 1;
    cilccato(clickNum);
    };
    .... fino a puls20_btn
    qui viene la mia domanda, come posso scrivere dinamicamente questo codice con un ciclo for, per non dover scrivere 20 volte la solita cosa?
    grazie mille
    ----------------
    2be || !2be

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Inserisci in un ciclo l'assegnazione delle funzioni, in questo modo
    Codice PHP:
    for (var i=0i<=20i++) {
        var 
    numS i<="0"+String(i) : String(i);
        var 
    mc this["puls"+numS+"_btn"];
        
    mc.index i;
        
    mc.onRollOver = function () {
            
    rollNum this.index;
            
    rollover(rollNum);
        }
        
    mc.onRollOut = function () {
            if (
    clickNum != this.index) {
                
    rollout(clickNum);
            }
        }
        
    mc.onRelease = function () {
            
    clickNum this.index;
            
    cliccato(clickNum);
        }

    La seconda riga serve a creare una stringa che per i primi 10 numeri inserisca anche uno 0 all'inizio, quindi avrai 00, 01 ... 09, 10 ... 20.
    La terza riga usa quella stringa per comporre il nome e lo assegna ad un puntatore che ci semplificherà poi la lettura del codice
    Nella quarta riga si assegna l'indice corrente al pulsante che lo deve sfruttare, perchè all'interno delle azioni dei pulsanti altrimenti non riusciresti a recuperare l'indice corretto, mentre con quello usi quando serve direttamente il this.index
    Il resto delle righe funziona come nel tuo codice, solo che al posto dei numeri 0,1,2 ecc... si usa l'indice che avevamo assegnato prima ad ogni pulsante.

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Se vuoi, subito dopo l'assegnazione di "mc" prova a farne un trace e vedi che ti restituirà ogni elemento del tuo menu, presumibilmente sotto forma di _level0.puls00_btn ecc...

    var mc = this["puls"+numS+"_btn"];
    trace(mc);

  4. #4
    Utente di HTML.it L'avatar di simonah
    Registrato dal
    Jan 2001
    Messaggi
    105
    grazie mille!!!!!!!!!! ora lo provo e poi ti so dire
    ----------------
    2be || !2be

  5. #5
    Utente di HTML.it L'avatar di simonah
    Registrato dal
    Jan 2001
    Messaggi
    105
    ...è tutto perfetto ma c'è un'ultima cosa devo aggiungere all'intreno del onRollOver
    ....
    ad ogni rollOver è associata una relativa clip (un lampeggio per intenderci), ho provato ad inserire all'interno all'intreno del onRollOver

    this["roll"+inumS+"_mc"].gotoAndStop(1);
    oppure
    this["roll"+this.index+"_mc"].gotoAndStop(1);
    ma non mi funziona bene...




    ..si vede che so' de' coccio!
    ----------------
    2be || !2be

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    codice:
    for (var i=0; i<=20; i++) {
        var numS = i<=9 ? "0"+String(i) : String(i);
        var mc = this["puls"+numS+"_btn"];
        mc.rif = this["roll"+numS+"_mc"]
        mc.index = i;
        mc.onRollOver = function () {
            rollNum = this.index;
            rollover(rollNum);
            this.rif.gotoAndStop(1);
        }
        mc.onRollOut = function () {
            if (clickNum != this.index) {
                rollout(clickNum);
            }
        }
        mc.onRelease = function () {
            clickNum = this.index;
            cliccato(clickNum);
        }
    }
    Con l'aggiunta delle due righe in rosso, dovresti ottenere quello che vuoi.

  7. #7
    Utente di HTML.it L'avatar di simonah
    Registrato dal
    Jan 2001
    Messaggi
    105
    come ho fatto a non pensarci??? grazie mille!!
    ----------------
    2be || !2be

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.