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

Discussione: hitTest -> azioni

  1. #1

    hitTest -> azioni

    Ciao a tutti,
    ho un problema e che non riesco a risolvere....
    ho un MC (_root.mc_donna) che contiene l'animazione di un'immagine.
    Sopra ad mc_donna ho sovrapposto un'altra MC (_root.mc_menu) e per comodità o messo dei bottoni trasparenti (alpha=0) sopra ogni voce del menu (_root.mc_menu) che gestiscono il rollOver e rollOut.
    Nel frame che contiene l'AS della linea temporale ROOT, ho scritto:

    codice:
    stop();
    if (_root.mc_donna.hitTest(_root.mc_donna._xmouse, _root.mc_donna._ymouse, true)) {
    	trace("okokokokok");
    	_root.mc_donna.gotoAndPlay(1);
    	
    }
    quello che vorrei ottenere è che ogni volta che il mouse va mc_donna, parta l'animazione di mc_donna dal primo frame.
    Ma non succede assolutamente nulla...ho sbagliato qualcosa?

    thax in anticipo
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  2. #2
    Utente di HTML.it L'avatar di kansuke
    Registrato dal
    Apr 2004
    Messaggi
    350
    ho dato un'occhiata veloce.

    ad occhio hai sbagliato a dare le coordinate x e y

    _root.mc_donna._xmouse restituisce le coordinate del mouse rispetto alle coordinate dell'Mc "mc_donna" probabilmente queste vengono confrontate con il bounding box dello stesso mc riferite al _root così c'è una discrepanza tra i valori, se vaghi con il mouse per il monitor probabilmente dovresti trovare un'area dove l'hit test funziona.

    prova con _root._xmouse
    "Hanno chiuso le mandrie nelle stalle
    perchè liberi siamo fino all'alba."
    R. Kipling

  3. #3
    niente, ho modificato anche come te hai detto ma non funziona....ho provato anche così:

    codice:
    _root.mc_donna.onEnterFrame = function() {
    	if (_root.mc_donna.hitTest(_root._xmouse, _root._ymouse, true)) {
    	   _root.mc_donna.gotoAndPlay(1);
    	   trace("okokokokok");
    	}
    };
    ma non funziona....
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da peppe79
    niente, ho modificato anche come te hai detto ma non funziona....ho provato anche così:

    codice:
    _root.mc_donna.onEnterFrame = function() {
    	if (_root.mc_donna.hitTest(_root._xmouse, _root._ymouse, true)) {
    	   _root.mc_donna.gotoAndPlay(1);
    	   trace("okokokokok");
    	}
    };
    ma non funziona....
    io userei un approccio un po' diverso dall'enterFrame

    codice:
    myListener = new Object();
    myListener.onMouseMove = function(){
    	if (_root.mc_donna.hitTest(_root._xmouse, _root._ymouse)) {
    	   _root.mc_donna.gotoAndPlay(1);
    	   trace("okokokokok");
    	}
    }
    Mouse.addListener(myListener);

  5. #5
    ....quasi perfetto, non conosco oggetto listener. Cmq l'effetto è mOOOlto meglio anche se "balbetta" un po...

    grazie 1000 cmq
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da peppe79
    ....quasi perfetto, non conosco oggetto listener. Cmq l'effetto è mOOOlto meglio anche se "balbetta" un po...

    grazie 1000 cmq
    "balbetta", in che senso? quando ti trovi sopra? bisogna rimuovere l'evento al momento giusto e dovrebbe essere tutto ok, solo che poi non so cosa succede rieseguendo l'operazione
    codice:
    myListener = new Object();
    myListener.onMouseMove = function(){
    	if (_root.mc_donna.hitTest(_root._xmouse, _root._ymouse)) {
    	   _root.mc_donna.gotoAndPlay(1);
    	   Mouse.removeListener(myListener);
    	   trace("okokokokok");
    	}
    }
    Mouse.addListener(myListener);

  7. #7
    Originariamente inviato da and80
    "balbetta", in che senso? quando ti trovi sopra? bisogna rimuovere l'evento al momento giusto e dovrebbe essere tutto ok, solo che poi non so cosa succede rieseguendo l'operazione
    codice:
    myListener = new Object();
    myListener.onMouseMove = function(){
    	if (_root.mc_donna.hitTest(_root._xmouse, _root._ymouse)) {
    	   _root.mc_donna.gotoAndPlay(1);
    	   Mouse.removeListener(myListener);
    	   trace("okokokokok");
    	}
    }
    Mouse.addListener(myListener);
    si quando sono con il mouse sopra.....per rimuovere l'evento devo usare removeListener?
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  8. #8
    Utente di HTML.it L'avatar di kansuke
    Registrato dal
    Apr 2004
    Messaggi
    350
    balbetta certo!!
    quando ti muovi sopra il bottone
    il mouse si muove??? si allora eseguo la funzione
    il mouse è sopra il bottone allora mando in play l'mc

    sopprimere il lister funziona cioè una volta entrato parte e non riesegue tutto, ma poi dopo se rientri non funzia più!!
    o rispristini al momento giusto il listener, oppure fai un controllino prima di farlo partire (con una variabilina dove ti "appunti" lo stato dell'animazione oppure con _currentframe).

    conta però che quando ripristini li liestener in qualsiasi modo l'hit test non verrà eseguito fino a quando il mouse non si muove, quindi nel caso fai fare subito il controllo.
    "Hanno chiuso le mandrie nelle stalle
    perchè liberi siamo fino all'alba."
    R. Kipling

  9. #9
    ...allora adesso sto provando con questo:

    codice:
    myListener = new Object();
    myListener.onMouseMove = function() {
    	if (60<=_root._xmouse && _root._xmouse<=250 && 65<=_root._ymouse && _root._ymouse<=578) {
    		if (_root.mc_donna.hitTest(_root._xmouse, _root._ymouse, true)) {
    			_root.mc_donna.gotoAndPlay(1);
    		} else {
    			_root.mc_donna.gotoAndPlay(6);
    		}
    	}
    };
    Mouse.addListener(myListener);
    il problema è che il MC (mc_donna) parte solo quando viene mosso il mouse sopra, giustamente.....come devo aggiungere o modficare?
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  10. #10
    Utente di HTML.it L'avatar di kansuke
    Registrato dal
    Apr 2004
    Messaggi
    350
    la cosa più semplice è far fare l'hit test l'ultimo fotogramma dell'animazione.

    questo manda l'animazione in loop in caso di permanenza nell'area
    era quello che volevi??
    "Hanno chiuso le mandrie nelle stalle
    perchè liberi siamo fino all'alba."
    R. Kipling

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 © 2026 vBulletin Solutions, Inc. All rights reserved.