Ciao
1. La proprietà mouseChildren determina se le istanze secondarie di un oggetto devono o non devono essere attive agli eventi del mouse.
Supponi di avere un MovieClip con annidato al suo interno un altro MovieClip e al Clip 'contenitore' assegni un Listener al MOUSE_OVER e un Listener al MOUSE_OUT.
Quando con il puntatore del mouse passi sopra il MovieClip 'contenitore', scatta l'evento mouse_over ma se ti sposti sopra il MC annidato al suo interno, anche se in pratica sei sempre sul MovieClip 'contenitore', potrebbe scattare il suo evento al mouse_out.
Per questo può essere necessario disattivare gli eventi del mouse per le istanze secondarie impostando la proprietà mouseChildren su false.
Puoi provare creando un MC con un MC annidato al suo interno e inserendo questo codice sul fotogramma:
Codice PHP:
clip.addEventListener(MouseEvent.MOUSE_OVER, provaOver);
clip.addEventListener(MouseEvent.MOUSE_OUT, provaOut);
//clip.mouseChildren = false;
function provaOver(evento:MouseEvent):void
{
trace("over");
}
function provaOut(evento:MouseEvent):void
{
trace("out");
}
Noterai che passando con il puntatore del mouse sopra il clip annidato, scatta il mouse_out e un istante dopo ritorna a essere attivo il mouse_over perchè di fatto sei sempre sul MC che ha chiamato la funzione al mouse_over.
Una questione di millesimi di secondo ma che potrebbe creare problemi di interferenze non volute.
2. Il this come da traduzione letterale fa riferimento a 'questo', questa timeline, questo MC, questa classe.as ecc...
Per cui se lo usi sulla timeline è superfluo e sottinteso che fai riferimento a 'questa' timeline e per questo scrivere:
Codice PHP:
this.gotoAndPlay("over")
o scrivere:
Codice PHP:
gotoAndPlay("over")
è praticamente la stessa cosa.
Comunque la cosa più semplice per vedere a cosa fai riferimento con this è fare un trace:
Se lo scrivi su un fotogramma della timeline principale ottieni: [object MainTimeline].
ciao