• User

    Come Exposè Sul Mac

    Ciao ragazzi, sono nuovo è il mio primo post 😉

    Sto cercando di realizzare un pulsante che imiti l'effetto exposè di osx.

    Nn so quanti di voi usano mac in poche parole, un pulsante che porti varie movieclip sovrapposte, in una determinata posizione, in modo da farle vedere tutte..

    Nn so davvero da dove partire, ho provato con droptarget ma nn riesco ancora..

    Mi date una mano perpiacere?

    Ah dimenticavo uso l'ultima versione di Flash


  • Super User

    Ciao Mekino e benvenuto sul forum gt,

    non uso mac e non avrei idea che sarebbe il 'exposé'.:?

    Sarebbe tipo drag and drop???

    Un altra domanda, usi flash cs3 ma sviluppi in actionscript 2.0 o 3.0?


  • User

    Ciao Onsitus, ho provato ad inserire un link nel post ma nn funziona senza la premium, io uso cs3 le azioni che utilizzo sono sempre semplici, sono un grafico è poco che studio il codice, e per ora solo 2.0, ti spiego,
    ho varie movieclip con all'interno un pulsante, e queste movie sono draggabili, rinchiuse in uno spazio, e tramite il droptarget si attivano e si spostano se vengono posizionate su uno spazio, e vorrei che tutti queste movie clip che sono sovrapposte, tramite un pulsante mi si piazzino una di fianco all'altra di fila, in modo da far scegliere all'utente quale selezionare, credo di nn essere stato motlo chiaro 😞

    Ci sono molti video su youtube che mostrano questo effetto con "exposè osx"

    ti posso mandare un messaggio privato per farti vedere il sito a cui sto lavorando?

    è da poco che studio abbiate pietà


  • Super User

    Non preoccuparti anch'io sono rimasta a as2.:D
    Comunque la cosa non mi sembra molto difficile, perche non semplicemente passare le coordinate x e y via l'azione del pulsante.
    Tipo:

    myBtn.onRelease=function(){
    myMc._x=200;
    myMc._y=200;
    }
    

    Troppo semplice come soluzione?:bho:

    Mi dispiace ma per regolamento non si puo rispondere in privato.
    Prova a scriverlo senza il www davanti.


  • User

    Ciao, grazie per la risposta, funziona :fumato:
    ma in questo modo c'è uno stacco netto fra la posizione iniziale e quella scelta dal pulsante e io vorrei che ci fosse una sorta di animazione che mi faccia partire l'elemento dalla posizione in cui l'utente l'ha piazzato fino alla posizione scelta da me con il pulsante :arrabbiato:

    nn posso linkare il sito sul forum dato che ci sono tutte le informazioni personali del cliente, ecco perchè ti chiedevo se fosse possibili linkarti solo quello in pm e poi continuare qui.

    Ti prego aiutami!
    è l'ultima volta che mi faccio fregare, ti chiedono prima una cosa semplice semplice da fare... e poi alla fine ti ritrovi ad aggiungere cose nn previste, che nn sai fare dato che nn è il tuo campo, e se nn fai come dicono loro subito se ne escono con la frase: "OK ALLORA CI RIVOLGIAMO ALTROVE"!!!! SONO IN PANICO!!! AAARRRRGGHHHHH!!! 😢


  • Super User

    Usare la tween class per aggiungere un animazione tipo bounce
    Esempio di codice:

    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    var clip_array:Array = new Array(mc1, mc2, mc3, mc4);
    btn.onRelease = function() {
        for (var i:Number = 0; i<clip_array.length; i++) {
            new Tween(clip_array*, "_x", Elastic.easeOut, clip_array*._x, (clip_array*._width+20)*i, 3, true);
            new Tween(clip_array*, "_y", Elastic.easeOut, clip_array*._y, 20, 3, true);
        }
    };
    ```In breve, importa la classe tween, crea un array che contiene i clip filmati, crea un loop basato sul numero di item dentro l'array, applica il tween su le proprieta _x e _y di ogni clip (in ordine, i parametri sono : nome del clip a quale viene applicato l'effeto, la proprieta del clip, tipo di effetto, valore iniziale, valore finale, tempo di transition, true per il tempo in sec).  Quello codice è valido se i clip devono assere allineati orrizzontalmente (sarebbe l'uso di clip_array*._width+20)*i per la proprietà x- aggiunge la larghezza del clip multiplicato per i + 20px di spazio per staccarli un po)
    
    Ci sono differenti effetti disponibile il Elastic.easeOut è solo un esempio.
    La lista puo essere trovata qui:
    http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001502.html
    
    Da provare e modificare come ti pare...l'esempio è tanto per darti un idea.:)

  • Super User

    Ti allego un esempio veloce...sarebbe da lavorarci sopra un po.:)


  • User

    wowwwww!!!!!!!!!! GRAZIEEEEEE!!!!!!!!!!!! :yuppi:

    Ho appena visto l'esempio, fantastico proprio quello che cercavo, ora provo ad adattare il codice al mio lavoro.
    BELLISSIMO!!!

    Ti faccio sapere come va a finire (speriamo bene) 😄

    spero di riuscirci :rollo:


  • User

    scusa se ti scoccio ancora ma sto studiando il tuo codice, e la cosa che nn mi è chiara è quale parametro mi va a definire la posizione finale dei clip

    • new Tween(clip_array*, "_x", POSIZIONE INIZIALE CHE RESTA INVARIATA-

    • Elastic.easeOut, clip_array*._x, - TIPO DI EFFETTO APPLICATO

    • (clip_array*._width+20)*i, 3, true); - POSIZIONE FINALE SPAZIO FRA LE CLIP E SECONDI -

    giusto?

    ma dove applico i valori "x" e "y"?

    Ho provato sulla guida ma nn riesco


  • Super User

    @Mekino said:

    • new Tween(clip_array*, "_x", POSIZIONE INIZIALE CHE RESTA INVARIATA-

    Quello non è la posizione iniziale.
    clip_array* è il nome del clip a quale viene applicato l'effetto
    _x è la proprietà del clip a quale è applicato l'effetto
    Di la che si ripete 2 volte la stessa cosa:
    new Tween(clip_array*, "_x",....effetto applicato alla proprietà x del clip
    new Tween(clip_array*, "_y",...effetto applicato alla proprietà y del clip
    Le posizione iniziale sono clip_array*._x e clip_array*._y
    @Mekino said:

    • Elastic.easeOut, clip_array*._x, - TIPO DI EFFETTO APPLICATO

    Ok
    @Mekino said:

    • (clip_array*._width+20)*i, 3, true); - POSIZIONE FINALE SPAZIO FRA LE CLIP E SECONDI -

    Ok, quello è usato per la proprietà x, mettendo i clip in linea orrizzontale
    Per la proprietà y invece il valore finale nel esempio è di 20

    @Mekino said:

    ma dove applico i valori "x" e "y"?
    Ho provato sulla guida ma nn riesco
    Non ho capito quella domanda...spieghi meglio il problema.:D


  • User

    ciao, ti spiego, semplicemente nn riesco ad inserire la proprietà "x" ..

    ho bisogno di dire alle clip di andare in determinati punti "x" e "y" ma nn so dove inserire i numeri per le cordinate, spero di essere stato chiaro 😞

    Ci sto provando da ieri :mmm:


  • Super User

    Come devono essere posizionati questi clip?
    Il loop for è utile se devono essere posizionati seguendo la stessa logica (nel esempio, in linea orrizontale sul axe x e con la stessa y) se non il caso, sara da posizionare ogni uno senza l'uso del array e senza l'uso del for (togliando il for e cambiando il clip_array* iniziale con il nome d'istanza del clip filmato)

    La parte in grassetto è dove viene inserito il valore finale sia per x che per y
    new Tween(clip_array*, "_x", Elastic.easeOut, clip_array*._x, (clip_array._width+20)i, 3, true);
    new Tween(clip_array*, "_y", Elastic.easeOut, clip_array*._y, 20, 3, true);


  • User

    Ciao Onsitus, credo di esserci riuscito eliminando l'array e posizionando i clip uno ad uno in questo modo riesco a gestirli meglio, il codice è questo:

    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    btn.onRelease = function() {
    new Tween(mc1, "_x", Elastic.easeOut, mc1._x, 10, 3, true);
    new Tween(mc1, "_y", Elastic.easeOut, mc1._y, 20, 3, true);
    new Tween(mc2, "_x", Elastic.easeOut, mc2._x, 397, 3, true);
    new Tween(mc2, "_y", Elastic.easeOut, mc2._y, 298, 3, true);
    };

    inserendo i valori uno ad uno, e aggiungendo due righe di x e y per ogni filmato riposizionato.

    nn so come ringraziarti credimi, hai perso na marea di tempo dietro di me 😉

    ho ancora TANTE DOMANDEEEEEEE ma ti lascio respirare 😄

    sul serio, grazie mille...


  • Super User

    Hai fatto giusto.

    Prego.:)