Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685

    come assegnare colori diversi per ogni pulsante

    Ciao,
    avrei bisogno di un chiarimento:

    Duplico, tot volte, un movieclip per creare una pulsantiera; ogni pulsante, sul rollOver, ha un proprio colore diverso dagli altri.
    Per fare questo ho posizionato questa semplice funzione:
    codice:
    function colora(mc,colore){
    	myColor = new Color(mc);
    	myColor.setRGB(colore);
    }
    poi, ho inizializzato la variabile "colore" all'interno del movieclip da duplicare in questa maniera (anche se di sintassi un po' dubbia):
    codice:
    var this.colore="";
    all'interno del ciclo dove duplico il movieclip ho assegnato il valore, della variabile colore, in questa maniera:
    codice:
    _root.menu["pulsante_primo_livello"+a].colore=colori_sezione[a];
    dove colori_sezione[a] è un array dei colori di ogni sezione.

    Funziona tutto come dovrebbe ma, mi dà comunque questo errore nel debug:
    codice:
    Simbolo=pulsante_primo_livello, Livello=azioni, Fotogramma=1:Linea 1: È previsto un identificatore
         var this.colore="";
    Credo sia giusto che me lo dia ma perché allora funziona?
    C'è qualche alternativa visto che ho fatto diverse prove e non ci sono riuscito?

    Grazie.
    FaX

  2. #2

    Re: come assegnare colori diversi per ogni pulsante

    Originariamente inviato da ilpiubello
    poi, ho inizializzato la variabile "colore" all'interno del movieclip da duplicare in questa maniera (anche se di sintassi un po' dubbia):
    codice:
    var this.colore="";
    non è un po' dubbia , e' proprio sbagliata ... o scrivi var colore, oppure this.colore


    var this.colore non ha senso


    var pippo = 'pluto';
    trace(_root.pippo);
    trace(this.pippo);
    trace(pippo);
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    la butto cosi
    se provi a mettere un valore quando inizializzi la var

    var this.colore="#FFFFFF";

    cosa succede?
    ciao
    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 !

  4. #4
    Originariamente inviato da crescenzo
    la butto cosi
    ...

    var this.colore="#FFFFFF";
    e' sbagliato inizializzare un percorso interno con var

    var this.qualunque_cosa e' sbagliato
    var _root.qualunque_cosa e' sbagliato
    var _levelN.qualunque_cosa e' sbagliato

    non si deve usare il path oppure si usa solo quello
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Originariamente inviato da andr3a
    e' sbagliato inizializzare un percorso interno con var

    var this.qualunque_cosa e' sbagliato
    var _root.qualunque_cosa e' sbagliato
    var _levelN.qualunque_cosa e' sbagliato

    non si deve usare il path oppure si usa solo quello
    era proprio una cavolata la mia

    cmq grazie tanto

    hai chiarito anche a me la cosa
    quindi o var colore
    o this.colore

    appreso
    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
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Ciao andr3a, ciao crescenzo.

    Allora, so che è sbagliata la sintassi ma perché funziona solo se faccio così? In questa maniera, ogni pulsante, prende il colore che gli passo mentre, se inizializzo la variabile con tutti i modi giusti che ci sono compreso quelli che mi ha indicato andr3a non funziona.

    Ho fatto come ha suggerito crescenzo e, naturalmente, mi fa la stessa cosa. Ho notato però questo: la prima volta che provo il filmato mi segna l'errore; se, però, chiudo il pannelo "output" e rilancio la prova filmato non me lo segna più questo errore.

    E adesso?
    FaX

  7. #7
    Originariamente inviato da ilpiubello
    Allora, so che è sbagliata la sintassi ma perché funziona solo se faccio così?
    c'e' troppo poco codice per capire dov'e' l'errore ... e in quel poco che hai scritto c'e' gia' un errore, quello li, appunto.

    scrivi il ciclo for o scrivi come è fatto l'array coi colori e come lo richiami, insomma dicci di piu'
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    mannaggia, oggi ho la linea che va peggio di 56kb... quando va!

    Questo è il codice:

    codice:
    // colori sezione
    function colora(mc,colore){
    	myColor = new Color(mc);
    	myColor.setRGB(colore);
    }
    
    // impostazioni menu
    posizioneX=new Array(104,193,294,357,428,512,-12,126);
    posizioneY=new Array(52,52,52,52,52,52,169,169);
    allineamento=new Array("center","center","center","center","center","center","right","right");
    colori_sezione=new Array(0x00CCCC,0xC12305,0xD18905,0x00CCCC,0x65C506,0x00CCCC,0x00CCCC,0x00CCCC);
    
    
    // COMPILO IL MENU SU 4 LIVELLI
    etichetta_primo_livello=new Array();
    etichetta_secondo_livello=new Array();
    etichetta_terzo_livello=new Array();
    etichetta_quarto_livello=new Array();
    
    menu=new XML();
    menu.ignoreWhite=true;
    menu.load("dati/menu_"+_root.id_lingua+".xml");
    menu.onLoad=carica_menu;
    function carica_menu (success) {
    	if(success){
    		primo_livello=menu.firstChild.childNodes;
    		
    		for (a=0; a<primo_livello.length; a++){
    			etichetta_primo_livello=primo_livello[a].attributes.etichetta;
    			trace(etichetta_primo_livello)
    			if(a<6){
    				_root.menu.menu_superiore.pulsante_primo_livello.duplicateMovieClip("pulsante_primo_livello"+a, a);
    				_root.menu.menu_superiore["pulsante_primo_livello"+a]._x=posizioneX[a];
    				_root.menu.menu_superiore["pulsante_primo_livello"+a]._y=posizioneY[a];
    				_root.menu.menu_superiore["pulsante_primo_livello"+a].voce.text=etichetta_primo_livello.toUpperCase();
    				_root.menu.menu_superiore["pulsante_primo_livello"+a].voce.autoSize=allineamento[a];
    				_root.menu.menu_superiore["pulsante_primo_livello"+a].colore=colori_sezione[a];
    				trace(a+" superiore")
    			}else{
    				_root.menu.menu_inferiore.pulsante_primo_livello.duplicateMovieClip("pulsante_primo_livello"+a, a);
    				_root.menu.menu_inferiore["pulsante_primo_livello"+a]._x=posizioneX[a];
    				_root.menu.menu_inferiore["pulsante_primo_livello"+a]._y=posizioneY[a];
    				_root.menu.menu_inferiore["pulsante_primo_livello"+a].voce.text=etichetta_primo_livello.toUpperCase();
    				_root.menu.menu_inferiore["pulsante_primo_livello"+a].voce.autoSize=allineamento[a];
    				_root.menu.menu_inferiore["pulsante_primo_livello"+a].colore=colori_sezione[a];
    				trace(a+" inferiore")
    			}
    ...
    ...
    Ho copiato solo la parte relativa al ciclo e al passaggio delle variabili; poi, nel primo frame del movieclip che vado a duplicare (_root.menu.menu_superiore.pulsante_primo_livello) , che è composto solamente da un campo testo dinamico, ho inserito la riga di codice incriminata: var this.colore="";
    Questo movieclip ha questi eventi:
    codice:
    on(rollOver){
    	_parent.colora(this, this.colore);
    }
    on(rollOut){
    	_parent.colora(this, 0xFFFFFF);
    }
    In questa maniera, tutti i cloni, leggono la famosa variabile con il valore che assume dal ciclo che ho indicato sopra.

    Ti ripeto, solo se scrivo quella variabile in quella maniera funziona tutto correttamente!!! Roba che se non facevo caso all'errore neanche me ne accorgevo
    FaX

  9. #9
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    AAAAAAAAHHHHHHHHHHHH VVoVe:

    Per sbaglio, mentre facevo delle prove, ho cancellato la riga dove inizializzavo la variabile e FUNZIONA!

    Non è possibile bastava semplicemente non metterla
    FaX

  10. #10
    quando usi path.variabile se non e' presente la inizializzi in automatico, quando assegni.

    E' errato invece usarla quando non e' ancora stata inizializzata poiche' sara' undefined
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.