Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Cartina Italia: pulsanti che restano premuti

    Salve a tutti ragazzi, sto creando una Cartina dell'Italia dove ogni regione dovrà essere cliccabile e quindi un pulsante, devo creare un effetto roll-over e inoltre quando clicco una regione deve restare "cliccata" (cioè evidenziata dal colore di roll-over) per poi ritornare normale se clicca su una regione diversa...spero di essermi spiegato bene...in pratica fino ad ora non ho avuto problemi, l'unica incognita è far restare "cliccate" le regioni, come posso fare? mi dareste una mano? immagino che per ogni regione non occorrerà creare un pulsante tradizionale, magari un clip dentro un pulsante e con sopra un'action che mi permetta di realizzare il tutto...si ma quale? come posso fare? ...scusate ma non sono molto pratico di Actions

  2. #2
    non usare i pulsanti ma crea un movieClip per ogni regione e dentro l'mc metti 3 frame (rollOut, rollOver, cliccata).
    poi gestisci i movieClip tramite actionscript sul frame:
    istanzaRegione1.onRollOut = function() {
    if (this._currentframe == 2) {
    this.gotoAndStop(1);
    }
    };
    istanzaRegione1.onRollOver = function() {
    if (this._currentframe == 1) {
    this.gotoAndStop(2);
    }
    };
    istanzaRegione1.onRelease = function() {
    this.gotoAndStop(3);
    };

    Per poi far spegnere le altre quando clicchi su di una dovresti fare un ciclo per spegnerle tutte insieme.

  3. #3
    Ciao "harpox", grazie, è stato più semplice di quanto immaginassi...solo una cosa, ho un piccolo problemino che riguarderà sicuramente una sciocchezza nella Action, ti spiego meglio...fino ad ora ho creato solo due clip (con relativa istanza), una per il Lazio e una per la Toscana e sul primo Frame ho messo questo:

    codice:
    lazio.onRollOut = function() {
    if (this._currentframe == 2) {
    this.gotoAndStop(1);
    }
    };
    lazio.onRollOver = function() {
    if (this._currentframe == 1) {
    this.gotoAndStop(2);
    }
    };
    lazio.onRelease = function() {
    this.gotoAndStop(3);
    };
    
    
    toscana.onRollOut = function() {
    if (this._currentframe == 2) {
    this.gotoAndStop(1);
    }
    };
    toscana.onRollOver = function() {
    if (this._currentframe == 1) {
    this.gotoAndStop(2);
    }
    };
    toscana.onRelease = function() {
    this.gotoAndStop(3);
    };
    ...sembra funzionare tutto bene solo che le regioni restano tutte cliccate, nel senso se ad es. clicco prima sul Lazio mi resta premuto, poi clicco sulla Toscana e mi resta premuto, solo che anche il Lazio resta premuto e non ritorna in rollOut...cosa ho sbagliato? sicuramente qualcosa nella Action...

  4. #4
    ...ragazzi qualcuno potrebbe darmi qualche consiglio?

  5. #5
    Devi fare un ciclo per nasconderle tutte e poi far vedere solo quella cliccata.
    Per semplificare le cose ti conviene chiamare le istanze delle regioni con un numero progressivo (ma volendo si potrebbe anche fare con i nome usando un array)

    Esempio:
    chiamale istanzaRegione1, istanzaRegione2, istanzaRegione3, ecc...

    poi metti sul primo frame cambiando solo la prima variabile "numRegioni":
    numRegioni = 4
    function pulisci() {
    for (i=1; i<(numRegioni+1); i++) {
    this["istanzaRegione"+i].gotoAndStop(1);
    }
    }

    istanzaRegione1.onRollOut = function() {
    if (this._currentframe == 2) {
    this.gotoAndStop(1);
    }
    };
    istanzaRegione1.onRollOver = function() {
    if (this._currentframe == 1) {
    this.gotoAndStop(2);
    }
    };
    istanzaRegione1.onRelease = function() {
    pulisci()
    this.gotoAndStop(3);
    };
    istanzaRegione2.onRollOut = function() {
    if (this._currentframe == 2) {
    this.gotoAndStop(1);
    }
    };
    istanzaRegione2.onRollOver = function() {
    if (this._currentframe == 1) {
    this.gotoAndStop(2);
    }
    };
    istanzaRegione2.onRelease = function() {
    pulisci()
    this.gotoAndStop(3);
    };
    istanzaRegione3.onRollOut = function() {
    if (this._currentframe == 2) {
    this.gotoAndStop(1);
    }
    };
    istanzaRegione3.onRollOver = function() {
    if (this._currentframe == 1) {
    this.gotoAndStop(2);
    }
    };
    istanzaRegione3.onRelease = function() {
    pulisci()
    this.gotoAndStop(3);
    };
    istanzaRegione4.onRollOut = function() {
    if (this._currentframe == 2) {
    this.gotoAndStop(1);
    }
    };
    istanzaRegione4.onRollOver = function() {
    if (this._currentframe == 1) {
    this.gotoAndStop(2);
    }
    };
    istanzaRegione4.onRelease = function() {
    pulisci()
    this.gotoAndStop(3);
    };

  6. #6
    ...ahhh...ecco, ora funziona perfettamente! GRAZIE MILLE PER IL CONSIGLIO!

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.