Consejo rápido: Obtener un número aleatorio dentro de un rango especificado usando AS3
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!