Hola, estoy aprendiendo flash, me compré el libro de ActionScript para Flash Mx de D. de la Cruz.
En él, te va poniendo ejemplos de programación, y en uno de ellos me han surgido dudas.
Me da un poco de vergüenza preguntar eso, debo ser tonta, porque seguro q es una tontería pero no lo entiendo.
Os explico. Se trata de duplicar elementos de clip de película.
El escenario es de 350x350, dentro hay un recuadro de 330x330. Se trata de duplicar, mediante codigo, el elemento objeto (un cuadrado de 25x25) aleatoriamente sin q se salga del recuadro.
El código q usa es el siguiente:
en la capa acciones:
en el 1º fotograma:
objeto0._x=10+objeto0._width/2+((330-objeto._width)*Math.random());
objeto0._y=10+objeto0._width/2+((330-objeto._width)*Math.random());
objeto0.texto=objeto0._name.substr(6,2);
i=1;
en el 2º:
objeto0.duplicateMovieClip("objeto"+i,i);
this["objeto"+i]._x=10+objeto0._width/2+((330-objeto0._width)*Math.random());
this["objeto"+i]._y=10+objeto0._width/2+((330-objeto0._width)*Math.random());
this["objeto"+i].texto=this["objeto"+i]._name.substr(6,2);
y en el 3º:
i++;
if (i<=99){
this.gotoAndPlay(_currentframe-1);
} else {
stop();
}
Entiendo todo, menos lo q se refiere a la primera parte de las lineas referentes a las posiciones _x y _y.
Pues la segunda parte (lo de ((330-objeto0._width)*Math.random()), lo entiendo, pone un valor aleatorio dentro del recuadro. También entiendo q al principio, le suma 10 porque es el margen y para q así no se salga del recuadro, lo q no entiendo es porque le suma la mitad de la anchura del objeto (+objeto0._width/2).
No veo el porque se debe poner, pero si se lo quito, entonces se sale por la derecha, entonces se debería de restar, en lugar de sumar, no?, pero si lo resto se sale de la izquierda. En fin, q no lo entiendo. Cuando le pones lo de ((330-objeto0._width)*Math.random() y ademas le sumas el 10 de margen, ya le dices q sean valores dentro de ese recuadro, no?
En fin, espero q me podais ayudar,
gracias por adelantado