Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: swap depth o simile

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    swap depth o simile

    Ho realizzato un puzzle con tanti pezzi che devono essere spostati per comporlo.
    Come già notato in altri puzzle su internet, vorrei che una volta selezionato un pezzo del puzzle passi sul livello più alto, risultando al di sopra di tutti gli altri quando viene spostato e non sparisca sotto gli altri.
    Se non erro il comando occorrente è swap depth, ma non so usarlo.
    Un aiutino ?
    Ringrazio chiunque per la disponibilità

  2. #2
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    se vuoi portarlo direttamente sul primo piano:
    codice:
    MC.swapDepths(_root.getNextHighestDepth());
    dove MC è il nome istanza del movieClip che deve prendere la nuova depth..
    codice:
    _root.getNextHighestDepth() //rappresenta la depth successiva all'elemento piu alto dello stage
    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    Grazie !

    Vado a provarlo subito !

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    ehm...

    non ho capito : dove inserisco lo script ? A me non interessa un solo pezzo del puzzle, ma qualsiasi pezzo. Ovvero : ho dieci pezzi e desidero che ogni volta, cliccando e trascinando uno di essi, questo passi in primo piano rispetto agli altri.
    Credo mi occorra uno script da associare ad ogni singolo movie, o no ?

  5. #5
    Utente di HTML.it L'avatar di §elva
    Registrato dal
    Nov 2006
    Messaggi
    607
    prova ad organizzare la cosa con un prototype..
    incolla questo script che ti permetterà di portare i movieClips in primo piano:
    codice:
    MovieClip.prototype.sovrapponi = function():Void  {
    	this.onPress = function():Void  {
    		this.swapDepths(_root.getNextHighestDepth());
    	};
    };
    poi per rischiamare lo script su ogni movieClip ti basterà:
    codice:
    istanzaMovieClip.sovrapponi();
    da sempre l'ignoranza fa paura, ma il silenzio è uguale a morte

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    Innanzitutto grazie

    Grazie per la disponibilità. Ho provato il codice, ma non funziona. Ho provato pure ad analizzare il codice di un puzzle dove i pezzi passano in primo piano come io vorrei, ma fatico a capirci più di tanto. E' tosto sto Flash... e mentre sto imparando l'as 2 e sto usando il flash mx 2004 questi sono già all'AS 3 e al Flash CS3 !!!
    Come si fa a non demoralizzarsi ?

  7. #7
    Il codice che ti ha postato §elva andrebbe messo tutto nel primo fotogramma del filmato (sia il primo blocco che il secondo). Inoltre non devi dimenticare di dare il nome di istanza al tuo clip nel pannello proprietà.

    Supponendo di avere un clip chiamato pippo (che ha come nome di istanza pippo), verrebbe una roba del genere:

    codice:
    MovieClip.prototype.sovrapponi = function():Void  {
    this.onPress = function():Void  {
    this.swapDepths(_root.getNextHighestDepth());
    };
    };
    pippo.sovrapponi();
    Puoi anche provare il codice di §elva separatamente. Crei due clip a forma di rettangolo. Il primo lo chiami pippo, il secondo pluto. Poi fai in modo di sovrapporre parzialmente pluto a pippo. Se clicchi su pippo, quest'ultimo passerà in primo piano.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    Così ho fatto

    Così ho fattop Darkseid.
    Ho un movie flash che è un puzzle dell'Italia, con tanti mc/pezzi di puzzle quante sono le regioni.
    Ho inserito in un livello dell'unico frame di cui è composto il programma il codice così come hai fatto l'esempio tu, scrivendo al posto di "pippo" il nome dell'istanza della regione "veneto".
    Una sola domanda : forse debbo prima riportare tutti i nomi dei mc sullo stage per poter vedere il codice funzionare ?
    Mah, per ora faccio la prova più semplice che mi consigli, quella dei due mc.
    Grazie infinitamente

  9. #9
    Cioè la regione non va in primo piano? :master:

    Guarda, se sei alle prime armi ti conviene lasciar perdere il prototype e provare con il codice generato dai comportamenti. Metti tutti i pezzi sullo stesso livello e nello stesso fotogramma. Infine cancella il codice che hai provato ad usare fino ad ora, e incolla in ogni singolo clip questo codice:

    codice:
    on (press) {
    mx.behaviors.DepthControl.bringToFront(this);
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    uhm...

    In questo secondo caso la regione passa effettivamente in primo piano, ma il movie si blocca per 6/7 secondi appena faccio clic su una qualsiasi regione. Dopo i 7 secondi mi ridà la funzionalità del mouse.
    Mah...

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.