Visualizzazione dei risultati da 1 a 8 su 8

Discussione: semplificazione script

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    159

    semplificazione script

    salve, come potrei semplificare questo script visto che le "voci" saranno un centinaio?

    bottone.onPress=function() {
    this.onEnterFrame=function(){
    if (_root.bottone_premuto == true) {
    _root.campo_errore.text = ""
    if (_root.ctrl_scala.cursore._x<=0){
    _root.ctrl_scala.cursore._x=0
    }
    if (_root.ctrl_scala.cursore._x>=_root.ctrl_scala.bar ra._width){
    _root.ctrl_scala.cursore._x=_root.ctrl_scala.barra ._width
    }
    _root.fatt_scala(_root.ctrl_scala.cursore._x)
    _root.rdm_cursore()
    if (_root.cont.prova1.text == "seconda voce") {
    ctrl_scala.cursore._x=20;
    map._y = 113;
    map._x = -50;}
    else if (_root.cont.prova1.text == "terza voce") {
    ctrl_scala.cursore._x=20;
    map._y = 50;
    map._x = -20;
    }
    else {
    _root.campo_errore.text = "elemento non trovato"
    }
    }
    }
    }
    bottone.onRelease=function(){
    delete this.onEnterFrame;
    }

    Grazie

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    inserisci il codice in un prototipo e poi lo assegni dentro ad un ciclo, così
    Codice PHP:
    MovieClip.prototype.azione = function () {
        
    this.onEnterFrame=function(){
            if (
    _root.bottone_premuto == true) {
                
    _root.campo_errore.text ""
                
    if (_root.ctrl_scala.cursore._x<=0){
                    
    _root.ctrl_scala.cursore._x=0
                
    }
                if (
    _root.ctrl_scala.cursore._x>=_root.ctrl_scala.barra._width){
                    
    _root.ctrl_scala.cursore._x=_root.ctrl_scala.barra._width
                
    }
                
    _root.fatt_scala(_root.ctrl_scala.cursore._x)
                
    _root.rdm_cursore()
                if (
    _root.cont.prova1.text == "seconda voce") {
                    
    ctrl_scala.cursore._x=20;
                    
    map._y 113;
                    
    map._x = -50;
                } else if (
    _root.cont.prova1.text == "terza voce") {
                    
    ctrl_scala.cursore._x=20;
                    
    map._y 50;
                    
    map._x = -20;
                } else {
                    
    _root.campo_errore.text "elemento non trovato"
                
    }
            }
        }
    }
    for (var 
    i=1i<=100i++) {
        var 
    bt _root["bottone"+i];
        
    bt.onPress = function (){
            
    this.azione()
        };
        
    bt.onRelease = function () {
            
    delete this.onEnterFrame;
        }


  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    159
    Scusa la mia ignoranza ma io così lo stesso devo inserire nello script "prima voce", "seconda voce", "terza voce", ecc...
    Un'altra cosa, si può dire al mc map.uno, map.due, map.tre, ecc di posizionarzi al centro della maschera ce ha come istanza "maskera"? Questo per evitare ogni volta di dare le coordinate x e y.
    Grazie

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    allora non ho chiaro cosa debba fare ogni tuo pulsante, il codice non è particolarmente esplicativo

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    159
    allora...
    Ho due combo sul primo ("prova") ci sono le catregorie e sul secondo ("cont") le voci, una volta che ho effettuato la scelta premo il mc "bottone" e il mc "map" si posizione sulle coordinate x e y.
    Sul secondo combo quindi abbiamo "prima voce", "seconda voce", ecc. Siccome le voci saranno circa un centinaio, vorrei sapere come si possa semplificare lo script con una funzione in modo che io non elenchi tutte e cento le voci.
    Inoltre, sempre per non impazzire, è possibile dire al mc map, di posizionarsi al centro del mc maskera (per non scrivere sempre le coordinate x e y) ogni volta che seleziono una voce diversa?
    Attualmete scrivo per la prima voce
    map_y = 50;
    map_x = -20;
    ecc
    Spero di essere sato chiaro

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    per la prima cosa, io direi di usare un approccio diverso, ossia utilizzerei un array per associare direttamente le voci interessate ad una singola selezione del primo combo tutte le selezioni del secondo combo, in questo modo nel momento stesso in cui avviene la scelta nel primo combo, il secondo si popola automaticamente senza ricorrere a if...else infiniti
    riguardo al secondo problema, con una formuletta matematica otterrai con precisione il punto in cui posizionare i clip, anche se hanno dimensioni diverse e quindi dovrebbero essere spostati in determinate posizioni per risultare al centro di un punto, la formula varia però a seconda di dove si trova il punto di registrazione della maschera e dove quello di "map"

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    159
    potresti per favore guidarmi sia sugli array che sulla formula?
    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    159
    Cerco di spiegare meglio tutto.
    Ho 2 combo che sono popolati con dei file xml, sul primo ho le categorie (es. ristoranti e alberghi) e sul secondo i nomi dei ristoranti e degli alberghi.
    Poi ho un mc "map" al cui interno ci sono altri mc (uno, due, tre, ecc) che rappresentano dei punti relativi ai nomi del secondo combo. Il percorso di questi punti sarà map.uno, map.due, map.tre, ecc. E fin qui va tutto bene.
    Con un mc "bottone", una volta selezionato mediante i combo es il ristorante "mario", effettuo la ricerca.
    Quello che cerco è un'action che dica che quando seleziono la voce sul secondo combo e clicco sul mc "bottone" i mc "map.uno", "map.due", "map.tre", ecc si devono posizionare al centro del mc "maschera".
    Spero di essermi spiegato...se così non fosse potrei allegare una demo
    Grazie e ciaooooo

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.