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

    Swapdephts: se clicco su un MC, ne porta avanti due..

    Salve ragazzi!
    Premetto che non sono una coder, uso action script il meno possibile ed ogni volta ci bisticcio

    Sto creando un dress-up game usando le mie illustrazioni vettoriali.
    Lo scopo del "gioco" è quello di vestire la bambola con i vari capi d'abbigliamento, proprio come con le vecchie bambole di carta.

    Volevo fare in modo che cliccando su ogni vestito, si potesse trascinarlo e al tempo stesso portarlo in primo piano rispetto agli altri, quindi ho usato questo codice:

    on (press) {
    startDrag(this);
    this.swapDepths(100);
    }
    on (release) {
    stopDrag();}
    So che molti usano le variabili quando utilizzano lo swapdepths, ma come dicevo prima io non sono una coder e preferisco usare i comandini semplici

    In ogni caso, il codice apparentemente funziona ma.. c'è un problema.
    Spiegarlo a parole è un po' complicato, dunque ho caricato un esempio per farvi capire:

    http://www.simplystella.com/images/swapdepths.htm

    Cliccate sul link sopra, poi provate a mettere sulla bambola prima i jeans corti, poi la t-shirt, così:

    Tutto bene: la tshirt è stata spostata per seconda ed infatti è andata sopra i jeans.
    Se però ora provate a cliccare sui pantaloni bianchi, ecco che immediatamente i jeans corti vanno in primo piano, sopra la tshirt.

    Questo accade anche se sposto prima i pantaloni bianchi, poi la tshirt, il gilet e infine le scarpe: in questo caso è la tshirt ad andare sopra a tutto il resto... e via dicendo per tutti gli elementi che compongono il gioco.

    Ho fatto molte prove, aggiungendo e togliendo comandi, mettendo swapdephts-getNextHighestDepth, mettendo il comando swapdepths anche su "On-release"..
    Niente! Tanto tempo perso (nel gioco completo ci sono una cinquantina di mc!) ma il risultato è lo stesso: il problema rimane..

    Qualcuno ha idea di come risolverlo? Sbaglio qualche cosa io?
    Allego il file *.fla della demo, nel caso qualcuno volesse darci un'occhiata..
    http://www.simplystella.com/images/swapdepths.fla

    Grazie in anticipo!



    edit: dimenticavo di dire che io uso as.2

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Usare un solo livello per gli swap ti crea sicuramente problemi, io ti consiglierei un approccio più diretto, decidendo già in partenza il livello in cui si dovrebbe trovare un elemento rispetto ad un altro. Spiego meglio con un esempio: tu hai nel disegno la maglietta e quella casacca lunga, sai già per certo che se metti la casacca lunga alla bambola, questa dovrà necessariamente andare sopra alla maglietta, perchè altrimenti se ricliccassi sulla maglietta, sarebbe questa a sovrastare il resto degli indumenti, perciò sai di sicuro che ad esempio la maglietta deve stare sul livello 100 mentre la casacca dovrà andare al livello 101, in questo modo non puoi sbagliarti e il codice funzionerebbe senza intoppi facendo prendere ad ogni indumento il posto giusto.
    Appena posso do anche un'occhiata al fla, e se riesco, concretizzo quello che ti ho scritto (non ti prometto nulla)

  3. #3
    Originariamente inviato da and80
    Usare un solo livello per gli swap ti crea sicuramente problemi, io ti consiglierei un approccio più diretto, decidendo già in partenza il livello in cui si dovrebbe trovare un elemento rispetto ad un altro.
    Grazie mille per la risposta velocissima!
    Cosa intendi esattamente per "livelli"?
    Se intendi semplicemente i livelli della storyboard, ho gia provato e il problema rimane. Ho provato perfino a mettere ogni movie clip su un livello a sè, ci ho messo una vita ma non ho risolto niente.

    Se invece intendi livelli di altro tipo ti prego di spiegarmi meglio perchè, nel caso non l'avessi gia detto, io e action script proprio non ci capiamo

    Ps. Ho anche cercato di "imporre" ad ogni MC una profondità specifica usando questo codice:
    onClipEvent(load)
    { this.swapDepths(CIFRA<100);}
    Ma al solito niente da fare

    Grazie ancora!

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    I livelli che dici tu sono i "layer" e non sono proprio da considerare perchè quando si pubblica il filmato vengono fusi in un unico "level" che è appunto quello di cui parlo io.
    I level sono livelli virtuali che vengono creati e gestiti tramite il codice.
    Ho testato il tuo filmato cambiando il codice in modo che solo nel momento in cui il vestito viene selezionato passi in primo piano e quando viene rilasciato torni alla sua posizione specifica e mi pare che vada bene come soluzione: http://www.v2online.it/test_drag/

  5. #5
    Originariamente inviato da and80
    I livelli che dici tu sono i "layer" e non sono proprio da considerare perchè quando si pubblica il filmato vengono fusi in un unico "level" che è appunto quello di cui parlo io.
    I level sono livelli virtuali che vengono creati e gestiti tramite il codice.
    Si immaginavo che si trattava di qualcos'altro (troppo facile sennò!)
    Come si fa a gestire questi livelli tramite codice? Qualcosa mi dice che non è come spalmare marmellata..

    Originariamente inviato da and80
    Ho testato il tuo filmato cambiando il codice in modo che solo nel momento in cui il vestito viene selezionato passi in primo piano e quando viene rilasciato torni alla sua posizione specifica e mi pare che vada bene come soluzione: http://www.v2online.it/test_drag/
    Grazie per l'interessamento, adesso lo provo e vedo, se funziona lo applico subito!

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Funziona per certo ma non so se è l'effetto che volevi ottenere. In tal caso ti posto il codice e ti spiego brevemente come applicarlo al tuo filmato.

  7. #7
    Originariamente inviato da and80
    Funziona per certo ma non so se è l'effetto che volevi ottenere. In tal caso ti posto il codice e ti spiego brevemente come applicarlo al tuo filmato.
    Ciao, scusa per il ritardo, ma ho un negozio e questi giorni sono stati da paura!
    Comunque, ho provato il tuo test: il mio problema è risolto - a proposito, se mi passi il codice mi fai un favore, io ho provato a mettere "this.swapDepths(this.originalDepth)" ma non è cambiato niente, immagino che tu abbia usato qualcos'altro.

    Però ho notato che adesso capita che alcuni MC stiano sempre dietro ad altri, per esempio la tshirt va sempre e comunque dietro ai pantaloni e non c'è verso di riportarla su.

    Immagino che il problema sia questo: se al release il MC torna al suo livello originale e il suo livello è inferiore di conseguenza va sotto. Ho provato a tracciare il livello con il comando get depth e ho visto che la tshirt è -16095 mentre i pantaloni -16182.

    Per me questo è un problema perchè volevo dare la possibilità a chi usa il gioco di decidere cosa portare sopra e cosa portare sotto, e non "imporre" un livello prestabilito come avevo fatto nel mio primo dress-up (in quello non avevo usato swapdepths) :berto:

    Scusa se ti faccio un po' perdere tempo e grazie ancora per l'aiuto, ho provato a chiedere da tante parti ma sei l'unico che si è dato pena di rispondermi

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Il problema più grande in quel tipo di interazione che vuoi dare tu e che quando ti trovi elementi come la "casacca" che deve necessariamente stare sopra a tutto il resto, se clicchi su un altro elemento e lo porti sopra agli altri, vedrai la casacca scendere di livello e otterrai un brutto effetto. La cosa è ugualmente risolvibile magari usando due array invece che uno solo con un array di elementi fissi e l'altro di elementi sovrapponibili. Il problema ora è che mi si è bruciata la scheda grafica del portatile dove ho il file e il codice, quindi non posso nè fare dei test nè passarti il fla o il codice che ho già scritto.

  9. #9
    Originariamente inviato da and80
    Il problema ora è che mi si è bruciata la scheda grafica del portatile dove ho il file e il codice, quindi non posso nè fare dei test nè passarti il fla o il codice che ho già scritto.
    Ah mi spiace, ma d'altra parte che computer sarebbe senza un po' di guasti..? Buona fortuna e grazie comunque per l'aiuto!


    Originariamente inviato da and80
    Il problema più grande in quel tipo di interazione che vuoi dare tu e che quando ti trovi elementi come la "casacca" che deve necessariamente stare sopra a tutto il resto, se clicchi su un altro elemento e lo porti sopra agli altri, vedrai la casacca scendere di livello e otterrai un brutto effetto.
    Ti dirò questo non è un grande problema, tutti i dress-up games che si trovano online hanno questo "difetto" - alcuni hanno un gestore di livelli a lato ma è roba troppo sofisticata per me! - quindi ci passerei sopra, se riuscissi a far funzionare il resto

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.