Advertisement
  1. Code
  2. ActionScript

Consejo rápido: Obtener un número aleatorio dentro de un rango especificado usando AS3

Scroll to top
Read Time: 3 min
This post is part of a series called You Do The Math.
Quick Tip: Trigonometry for Flash Game Developers

Spanish (Español) translation by Esther (you can also view the original English article)

A menudo necesitamos usar un número generado aleatoriamente para ciertas situaciones; el uso de Math.random() * n normalmente hará el truco, pero sólo calculará un número de 0 a n. ¿Y si necesitamos un número que no da 0 como valor mínimo? ¿Cómo se puede generar un número aleatorio entre 100 y 1000? Te mostraré cómo hacerlo en este Consejo Rápido.

Resultado final

Este ejemplo demuestra la función que vamos a crear:

Introduce dos números separados por un ',' y pulsa el botón de aleatorio.


Paso 1: Breve descripción

Usando una función creada en ActionScript 3, calcularemos un número entre dos valores. Estos valores se pasarán como parámetros y se usarán con Math class para generar un número aleatorio.


Paso 2: Crear un nuevo archivo

Abre Flash y crea un nuevo archivo Flash (ActionScript 3.0).


Paso 3: Abrir el panel de acciones

Presiona Option (Opción) + F9 o ve a Window (Ventana) > Actions (Acciones) para abrir el Actions Panel (Panel de acciones).


Paso 4: Declaración de la función

Declara una función y nómbrala randomRange; esta función devolverá el número aleatorio, así que establece el tipo de devolución en Number.

1
function randomRange():Number 
2
{

Step 5: Establecer parámetros

Se usarán dos parámetros para calcular el número.

  • minNum: El valor mínimo a devolver
  • maxNum: El valor máximo a devolver
1
function randomRange(minNum:Number, maxNum:Number):Number 
2
{

Paso 6: Escribir la función principal

Esta es la función con la línea generadora de números aleatorios reales. La potencia de las matemáticas se utiliza para generar el número.

1
function randomRange(minNum:Number, maxNum:Number):Number 
2
{
3
	return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
4
}

Paso 7: Cómo funciona

Tenemos nuestra función de generador de números aleatorios, pero ¿qué hace esta función?

Echa un vistazo a la siguiente imagen para tener una mejor idea:

En el ejemplo de la imagen, si Math.random() fuera menos de 0,5, el resultado sería 550.


Paso 8: Prueba con un trazo

Una forma sencilla de probar la función es usar una función trace(). Mira el código a continuación:

1
function randomRange(minNum:Number, maxNum:Number):Number 
2
{
3
	return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
4
}
5
6
trace(randomRange(10, 20)); //A number between 10 and 20

Paso 9: Ejemplo

Este es un ejemplo de trabajo, utiliza un botón para calcular el número y mostrarlo en un TextField.

1
/* The randomRange function */
2
3
function randomRange(minNum:Number, maxNum:Number):Number 
4
{
5
	return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
6
}
7
8
/* The actions that will perform when the button is pressed */
9
10
function buttonAction(e:MouseEvent):void
11
{
12
	//An array will store the numbers in the textfield

13
	var n:Array = inputText.text.split(","); 	
14
	
15
	//Calculate the number based on the input, convert the result to a string

16
	//and send that string to the textfield

17
	generatedNumber.text = String(randomRange(n[0], n[1]));
18
}
19
20
//Add button's event listener

21
actionButton.addEventListener(MouseEvent.MOUSE_UP, buttonAction);

Introduce dos números separados por un ',' y pulsa el botón de aleatorio.


Conclusión

Este es un ejemplo básico de cómo puedes usar esta función; ¡experimenta y úsala en tus propios proyectos!

¡Gracias por leer!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.