Ya me habían preguntado cómo se usaba un for correctamente, acá está la explicación que di en ese momento:
Un for tiene esta sintaxis (también se pueden usar con una variable itinerante, pero eso no importa por el momento):
for (
init ;
condition ;
next){
init: la o las variables iniciales
next: cada vez que se ejecuta el for, vuelve a empezar, pero cambiando la o las variables (en el ejemplo de abajo se va a entender mejor)
condition: el for se ejecutará mientras esta condición sea evaluada como true
Hasta aquí la teoría. Ahora un ejemplo:
Código :
for (i = 1; i <= 5; i++) {
trace ("i = " + i);
}Bien, lo que ocurre es que en la ventanita de output, aparcecen los número del 1 al 5.
Esto es porque el for, primero dice que la variable i es igual a 1. Luego chekea que i sea menor o igual a 5, si lo es, realiza la acción (en este caso, un simple trace) y cuando termina de realizar las acciones, suma 1 a la variable i y vuelve a chekear y a realizar las acciones, etc. etc. etc.
Como verás, esto te pude servir cuando trabajás con múltiples MCs o botones. El siguiente código ubica una serie de clips creados dinámicamente a partir de un objeto de la biblioteca exportado para AS como "nuevoMC". Luego, si detecta que el usuario hace click con el mouse en cualquier parte de la pantalla, los ordena (también por medio de un for).
Código :
var objetos:Number = 5;
var anchoClips:Number;
var ordenados:Boolean = false;
//
for (i = 1; i <= objetos; i++) {
this.attachMovie ("nuevoMC", "objeto" + i, i);
_root["objeto" + i]._x = Number (random (Stage.width));
_root["objeto" + i]._y = Number (random (Stage.height));
}
//
anchoClips = objeto1._width
//
onMouseDown = function () {
for (i = 1; i <= objetos; i++) {
_root["objeto" + i]._x = 20 + (anchoClips + 5) * i
_root["objeto" + i]._y = Stage.height / 2
};