Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 39

Discussione: bottoni elastici

  1. #1

    bottoni elastici

    Ciao
    ho un problema: vorrei creare 15 bottoni elastici (15 foto piccole) che partendo dal centro dello stage in formato W 1.0 e H 1.0 mi si posizionassero in rapida successione in un'unica fila orizzontale in posizione x40.0 raggiungendo un formato W 35.0 e H 35.0
    Qualcuno mi puo' aiutare?
    Grazie e Buona Pasqua a tutti!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    477
    Non è una cosa da risolvere in due righe di script...io ti dico la prima cosa che mi viene in mente, è un po' lungo da fare ma il risultato lo ottieni.
    Prima di tutto devi annidiare i pulsanti in un MC (un MC per ogni pulsante) poi assegni al primo MC questo script:

    onClipEvent (load) {
    _width = 1;
    _height = 1;
    _x = _root._width/2;
    _y = _root._height/2;
    newx = _x;
    nw = 0;
    nh = 0;
    vel = .6;
    fri = .2;
    }
    onClipEvent (enterFrame) {
    scalx = ((nw-_width)*vel)+(scalx*fri);
    scaly = ((nh-_height)*vel)+(scaly*fri);
    movx = ((newx-_x)*vel)+(movx*fri);
    _width += scalx;
    _height += scaly;
    _x += movx;
    _y -= movy;
    }

    mentre agli altri MC assegni questo script:

    onClipEvent (load) {
    _width = 1;
    _height = 1;
    _x = _root._width/2;
    _y = _root._height/2;
    vel = .6;
    fri = .2;
    }
    onClipEvent (enterFrame) {
    scalx = ((_root.mc1._width-_width)*vel)+(scalx*fri);
    scaly = ((_root.mc1._height-_height)*vel)+(scaly*fri);
    movx = (((_root.mc1._x+_root.mc1._width)-_x)*vel)+(movx*fri);
    movy = ((_root.mc1._y-_y)*vel)+(movx*fri);
    _width += scalx;
    _height += scaly;
    _x += movx;
    _x -= movy;
    }


    le parti in grassetto andranno sostituite, per ogni MC, con i dati corrispondenti al MC del pulsante precedente (nell'ordine della fila) in modo da ottenere un effetto "a catena".

    le variabili "vel" e "fri" si riferiscono a velocità e frizione (la sintassi ".6" indica il valore "0.6") e sono modificabili...dipende da cosa vuoi ottenere: cambia i valori e guarda cosa succede.

    Infine assegni ad un pulsante per la creazione del menu questo script che darà inizio ai movimenti

    on (release) {
    mc1.newx = 40;
    mc1.nw = 35;
    mc1.nh = 35;
    }


    Ripeto: è la prima cosa che mi viene in mente, se qualcuno conosce una strada più breve (magari con una funzione) ben venga!

    Buona Pasqua....e buon lavoro.

  3. #3
    Ciao Zippo
    allora ho creato il primo bottone che poi ho trasformato in un mc al quale ho associato le actions che mi hai impostato e cioè

    onClipEvent (load) {
    _width = 1;
    _height = 1;
    _x = _root._width/2;
    _y = _root._height/2;
    newx = _x;
    nw = 30 ;
    nh = 30 ;
    vel = .6;
    fri = .2;
    }
    onClipEvent (enterFrame) {
    scalx = ((nw-_width)*vel)+(scalx*fri);
    scaly = ((nh-_height)*vel)+(scaly*fri);
    movx = ((newx-_x)*vel)+(movx*fri);
    _width += scalx;
    _height += scaly;
    _x += movx;
    _y -= movy;
    }

    ho cambiato solo il valore che vedi in grassetto e fino a questo punto funziona, ma per il secondo bottone le actions che mi hai suggerito non mi danno l'effetto desiderato, in quanto vedo il bottone che continua a spostarsi da sx a dx dello stage fino ad uscire dal medesimo Non so cosa fare.Ma a te funziona?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    477
    :master: strano, a me funziona, ho addirittura copiato lo script che ho postato prima e l'ho testato.

    Hai controllato i nomi dei mc sullo stage se corrispondono a quelli utilizzati nel codice?

    ...lo so, è una domanda scema....ma errori di distrazione possono sempre capitare!

    Io l'ho fatto su Flash MX, ma non penso che un codice simile non funzioni sul F5...tu cos'hai?

    Non so come aiutarti

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    477
    ti mando il file che ho fatto io.

    bott_elast.fla


  6. #6
    Grazie Zippo per il file che mi hai messo a disposizione. Ma ho visto che i vari quadratini che si allineano non sono bottoni ma mc; se li trasformo in bottoni non funziona + niente

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    477
    Ah! Ecco dove sbagli, scusami, pensavo che lo sapessi...le immagini devi PRIMA convertirle in simbolo pulsante POI riconvertirle in MC. Fatto questo applichi ai MC i rispettivi script.

    Fammi sapere!

    Ciao

  8. #8
    Grazie Zippo:quote:
    adesso funzionaaaaa!!!...anche se il primo quadratino non è allineato con tutti gli altri e non capisco come mai. Ma per fare in modo che si allineino tutti + in basso nello stage cosa devo cambiare?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    477
    devi aggiungere una riga per il movimento sull'asse delle y

    ecco i nuovi codici completi (e senza gli errorini che avevo fatto prima! )

    primo MC:

    onClipEvent (load) {
    _width = 1;
    _height = 1;
    _x = _root._width/2;
    _y = _root._height/2;
    newx = _x;
    newy = _y;
    nw = 0;
    nh = 0;
    vel = .4;
    fri = .4;
    }
    onClipEvent (enterFrame) {
    scalx = ((nw-_width)*vel)+(scalx*fri);
    scaly = ((nh-_height)*vel)+(scaly*fri);
    movx = ((newx-_x)*vel)+(movx*fri);
    movy = ((newy-_y)*vel)+(movy*fri);
    _width += scalx;
    _height += scaly;
    _x += movx;
    _y += movy;
    }


    secondo MC (e successivi, opportunamente modificati):

    onClipEvent (load) {
    _width = 1;
    _height = 1;
    _x = _root._width/2;
    _y = _root._height/2;
    vel = .4;
    fri = .4;
    }
    onClipEvent (enterFrame) {
    scalx = ((_root.mc1._width-_width)*vel)+(scalx*fri);
    scaly = ((_root.mc1._height-_height)*vel)+(scaly*fri);
    movx = (((_root.mc1._x+_root.mc1._width)-_x)*vel)+(movx*fri);
    movy = ((_root.mc1._y-_y)*vel)+(movy*fri);
    _width += scalx;
    _height += scaly;
    _x += movx;
    _y += movy;
    }


    sul pulsante per creare il menu:


    on (release) {
    mc1.newx = 40;
    mc1.newy = 350;
    mc1.nw = 35;
    mc1.nh = 35;
    }

    Modificando il valore della variabile "newy" sul pulsante, sposti tutto il menu in basso (o in alto se diminuisci il valore)


  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    477
    ....dimenticavo, se aumenti a 20 il numero di frame/sec l'animazione risulta più gradevole e meno "scattosa"!

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.