actionscript-3 flash movieclip

actionscript 3 - ¿Cómo detener todos los clips de película secundarios dentro de un clip de película en AS3?



actionscript-3 flash (2)

Tengo un clip de película que es un personaje en un juego. Dentro de estos clips de película hay varios clips de película que contienen miembros que tienen una animación. Por lo tanto, ¿alguien tiene una sugerencia sobre cómo pasar a GoogleAndStop (1)? en todos los clips de película que están dentro del personaje sin tener que llamar a cada objeto miembro manualmente?

El clip de película de personaje contiene un total de 20 clips de película en 4 cuadros, por lo que solo quiero detener todos los clips de película dentro del personaje.


La manera más fácil de pensar:

// MovieClip propotype function that stop all running clips (current and inside clips) MovieClip.prototype.stopAllClips = function():void { var mc:MovieClip = this; var n:int = mc.numChildren; mc.gotoAndStop(1); for (var i:int=0; i<n; i++) { var clip:MovieClip = mc.getChildAt(i) as MovieClip; if (clip) { clip.gotoAndStop(1); clip.stopAllClips(); } } }

Por lo tanto, es recursivo y se puede invocar desde MovieClip en sí mismo:

myMovieClip.stopAllClips(); // Stop the clip and inner clips

EDITAR

A partir de Flash Player 11.8 / AIR 3.8, hay un método integrado para todos DisplayObjectContainers llamado stopAllMovieClips .

commonParent.stopAllMovieClips();


Si te entiendo correctamente (es decir, detengo todos los clips de película dentro de otro movieclip), esto debería funcionar:

function stopAllClips(mc:MovieClip):void { var n:int = mc.numChildren; for (var i:int=0;i<n;i++) { var clip:MoviceClip = mc.getChildAt(i) as MovieClip; if (clip) clip.gotoAndStop(1); } }

Simplemente llámalo así:

stopAllClips(yourMovieClip);

Donde tuMovieClip es el personaje.

EDITAR

A partir de Flash Player 11.8 / AIR 3.8, hay un método integrado para todos DisplayObjectContainers llamado stopAllMovieClips .

commonParent.stopAllMovieClips();

Tenga en cuenta que esto detendrá recursivamente a todos los niños y nietos, a diferencia de la respuesta original que solo detiene a los niños inmediatos.