ActionScript duda

sevas5

buenas lo q tengo q hacer es q al hacer click en el boton te muestre aleatoriamente un dia de la semana y me falta algo pero nose el q... os dejo el script

/*al hacer click al boton llamamos a
la funcion mostrar */
boton_btn.onPress = function ()
{
mostrar() ;
}

function mostrar()
{
/creamos un Array para que se
muestre los dias de la semana
/
var semana:Array = new Array();
semana[0] = "Domingo";
semana[1] = "Lunes";
semana[2] = "Martes";
semana[3] = "Miercoles";
semana[4] = "Jueves";
semana[5] = "Viernes";
semana[6] = "Sabado";

/* para que te muestre el resultado del boton
dentro del cuadro de texto */
texto_txt.text = "AQUI TENGO Q PONER ALGO Y NOSE EL Q" ;
}

ethernal-

var semana:Array = ["Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo"];

function mostrar():void {
var n:Number = myNumber = Math.floor(Math.random()*7);
texto_txt.text = semana[n];
}

Como ves, te he dejado la declaracion del array fuera, ya que declararlo cada vez que llamas a la funcion no tiene mucha logica.

Math.floor(n) -> trunca el numero n al entero mas cercano.
Math.random() * 7 -> devuelve un numero aleatorio entre 0 y 7 (con decimales, para eso el floor).

sevas5

buaaaaaaaaaaa, tio mil de gracias... va como decirlo: "Va de p---- madre" muchisimas gracias.

VIVA CÓRDOBAA!!!!!

sevas5

Funcionar, me funciona perfectamente, pero no termino de comprenderlo,
var n:Number = myNumber = Math.floor(Math.random()*7);

el floor y el random lo entiendo "bien",la linea quiere decir q:
creamos una variable llamada n la cual le decimos q es un campo numero y la llamamos a la variable n myNumber la cual le decimos que redonde ala baja con el floor y con el random el numero aleatorio entre 0 y 7

esto es asi, o yo me fumado algo?

y por cierto en la linea function mostrar () :Void
que quiere decir el :Void ??

gracias de nuevo!!

Shock

#4 El void simplemente significa que la función no devuelve nada mediante la instrucción return variable, ya que sólo te escribe en tu campo de texto el día de la semana que salió en el random. Void es vacío.

Yo sólo quiero apuntar que si te vas a meter a actionscript siempre tengas clara la profundidad de las variables y movieclips o buttons que hagas.

Por ejemplo, si haces un movieclip y dentro metes un texto dinámico, debes llamar al texto así:

_root.miMovieClip.miTexto.text = "hola";

Además si vas a declarar funciones que leen variables de otros sitios del documento Flash acuerdate de declararlas siempre con _global ya que sino también tendras errores.

_global.contador = 1;

Y por último una instrucción muy buena para trazar una variable en tiempo de ejecución es trace();

while (i=0; i<10, i++) {
trace(i);
}

Te saca en una ventanita lo que vale la variable "i" en cada momento del while.

Un saludo!

sevas5

#5 haber si lo e entendido, el Void quiere decir que el campo texto esta vacio. por lo tanto es lo mismo que si no pongo el void,es asi?

en la linea q as puesto _root.miMovieClip.MiTexto.text = "hola"; ami me an enseñado q tbm ahi q poner la declaracion o algo asi nose como se llama
_root.MiMovieClip_mc.MiTexto_txt.text = "hola";
(creo q es lo mismo, verdad?)

y luego lo que tu me dices de _global te refieres que tengo q ponerlo delante de todas las variables para ¿cuando ponga distintas variables en distintas capas?

ademas el trace(i) es para q se te muestre por pantalla pero yo queria q se mostrara en un campo texto x eso e puesto
texto_txt.text = semana[n];

el while no entiendo para q sirve en mi ejercicio y yo lo q necesito para hacerlo aleatoriamente es un Array.

y gracias por tu tiempo.Me as ayudado a comprender mejor el actionscript!! ah, y q sepas #5 q estado 10 minutos leyendome tu comentario para comprenderlo..:D

Shock

#6

"haber si lo e entendido, el Void quiere decir que el campo texto esta vacio. por lo tanto es lo mismo que si no pongo el void,es asi?"

No lo has entendido bien, poner un void en el código de esa función es decirle a la función que no va a devolver nada con return.

Por ejemplo:

function sumar(a, b) {
c=a+b;
return c;
}

Devuelve la variable c para poder ser llamada desde cualquier otro código que no esté dentro de esa función, no pongo void porque quiero que me devuelva c con return c, si pusiera void no puedo utilizar return porque lo que devuelve la funcion está vacio. Eso se llama visibilidad en programación.

En tu caso no hacía falta devolver nada con return porque simplemente escribes en tu campo de texto el resultado del random del día de la semana.

"en la linea q as puesto _root.miMovieClip.MiTexto.text = "hola"; ami me an enseñado q tbm ahi q poner la declaracion o algo asi nose como se llama
_root.MiMovieClip_mc.MiTexto_txt.text = "hola";
(creo q es lo mismo, verdad?)"

La única diferencia ahí es que mi movieclip se llama miMovieClip y el tuyo miMovieClip_mc, pero creo que no por poner _mc le dices al ActionScript que eso es un movieclip y no un botón por ejemplo.

"y luego lo que tu me dices de _global te refieres que tengo q ponerlo delante de todas las variables para ¿cuando ponga distintas variables en distintas capas?"

En distintas capas no, mas bien en distintas profundidades de Flash, como por ejemplo tener un código dentro de un movieclip y querer llamar a una variable de ese código desde la raíz de toda la escena para hacer cualquier cosa.

"ademas el trace(i) es para q se te muestre por pantalla pero yo queria q se mostrara en un campo texto x eso e puesto
texto_txt.text = semana[n];"

Ya ya, era por si no sabias la instrucción.

"el while no entiendo para q sirve en mi ejercicio y yo lo q necesito para hacerlo aleatoriamente es un Array."

El While era por ponerte un ejemplo, está claro que ese código no te sirve para nada en lo que quieres hacer xD era para hacerte comprender el trace mejor si no lo conocias.

"y gracias por tu tiempo.Me as ayudado a comprender mejor el actionscript!! ah, y q sepas #5 q estado 10 minutos leyendome tu comentario para comprenderlo.."

De nadas! No soy ningún fiera del AS pero algo me defiendo.

sevas5

#7 Muchas gracias, ahora entiendo todo perfectamente, la segunda explicacion a sido genial.y ahora se mas del ejercicio para asi futuros AS.

P.D: que no te estrañe q te de una atencion para q me ayudes en algun ejercicio mas.

Usuarios habituales

  • sevas5
  • Shock
  • ethernal-