Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    25

    Problema con hitTest() su MovieClip ruotati e inclinati

    Il problema di fondo consiste nell'uso della funzione hitTest( ) all'interno di un Movieclip inclinato. Sto usando FlashMX 6.0.

    Vi spiego meglio con questa immagine, che rappresenta il MovieClip “Piano”.



    All’interno di Piano, ogni stanza gialla che vedete è un MC (MovieClip) diverso e il pallino rosso è un altro MC chiamato “pallino”.
    Il concetto dell’animazione è che il pallino si muove all’interno delle stanze e transita da una stanza all’altra in maniera random, come se si trattasse di una persona che vaga per le sale.

    Ora, a livello di codice, il MC pallino definisce e poi usa al suo interno una funzione per capire in che stanza si trova:
    codice:
    // calcola la stanza in cui ci troviamo
    function calcolaStanza ()
    {
    	stanza = "Nessuna stanza!";
    	
                    // controllo per vedere se siamo nella foresteria
    	if( this.hitTest( _parent.foresteria))
    	{
    		stanza = _parent.foresteria;
    	}
    	
            // controllo sulle altre stanze….
    	if ….	
    
    	…. return stanza;
    }
    NOTA: _parent qui rappresenta l’oggetto Piano, che contiene appunto tutti i MC delle stanze ed il MC pallino.

    Ora, se io inserisco in una scena un'istanza del MC Piano, tutto funziona a perfezione: la funzione restituisce sempre la stanza giusta, quella in cui graficamente si vede che il pallino si trova al suo interno.

    Ma se io INCLINO e RUOTO l’istanza di Piano, ecco che la funzione prende a restituire stanze che non centrano nulla con quella in cui il pallino si vede che si trova!

    So che il problema sta nel fatto che, così definita, la funzione hitTest () considera i “riquadri” dei MC, così che se io inclino e ruoto, il riquadro delle stanze non è più il vero contorno della stanza…
    Allora ho provato ad usare l’altra definizione di hitTest:

    // dal manuale
    myMovieClip.hitTest(x, y, indicatoreForma)

    E quindi nel mio caso ho sostituito con questo frammento di codice:
    _parent.foresteria.hitTest(this._x, this._y, true)

    Eppure non funziona, anzi non resituisce mai true anche se il pallino si trova sulla stanza, piano inclinato o meno...

    L’errore è nell’uso di hitTest() in quest’ultima versione che è forse errata, o avete qualche idea? Le coordinate _x e _y nei parametridevono essere globali e non locali? Se sì, come le converto esattamente? localToGlobal() non sono mai riuscito a capire da DOVE chiamarla esattamente…

    Grazie della pazienza d’esser arrivati fin qui, spero di essermi spiegato!
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    25
    Notizie non certe dicono che forse con Flash8 ci sono strumenti più efficaci per controllare direttamente i pixel.... nessuno sa dirmi nulla?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    25
    Ho trovato Flash 8... finalmente han fatto le precise descrizioni dei metodi e delle classi in stile JavaDoc, ma è un poco complicato devo ammettere. Sto scartabellando la guida, ma nn trovo ancora nulla..

    Nessuno sa aiutarmi?

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.