Flex Blog

Search:
  • Home
  • Examples
    • Thumb

      Flex Examples

      Check out our Flex Examples!

    • Thumb

      Flash Builder Examples

      Check out our Flash Builder Examples!

    • Thumb

      AIR Examples

      Check out our AIR Examples!

    • Thumb

      Flex Mobile Examples

      Check out our Flex Mobile Examples!

    Adobe® Flex, Adobe® Flash Builder and Adobe® AIR are registered trademarks of Adobe Systems.
  • Components
    • Thumb

      WP Flex Contact Form

      Check out our WP Flex Contact Form!

    • Thumb

      Flash CountDown Plugin

      Check out our Flash CountDown Plugin!

    This is an overview of all our Flash/Flex based Components.
  • Jobs
  • Flex Books
  • Forum
  • Contact Us
Subscribe to Flex BlogSubscribe
  • Examples
  • iOS
Browse > Home / Examples / Random number in Flex

Random number in Flex

10 February 2010

Line Break

Author: Arjan (47 Articles) - Author Website

Arjan is a SAP Consultant specialized in ABAP and Front End development techniques like Web Dynpro, Adobe Interactive Forms, Flex and AIR. In his free time he likes to create examples for Flex-Blog and other applications using Flex, AIR and PHP. Other hobbies are movies and music. He is also the co-owner of Flex-Blog.com.


Every now and then you need to do something at random in your application (i.e. pick a random item from a collection). For that, you’re probably need some random number to decide which option to choose. Here is a simple example that shows you how to generate random numbers in Flex.

To do this, you can you can use the static method random() in the Math class. Math.random gives you a random number between 0 and 1. To get a whole random number between, for example 0 and 100, just multiply the Math.random() result by 100 and round the outcome of that calculation.

Example Application:

Source code for the example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark" baseColor="0xCCCCFF"
               xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" viewSourceURL="srcview/index.html">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
   
    <fx:Script>
        <![CDATA[
           
            private function generateRandomNumber( start:Number, end:Number ):void
            {
                var randomNum:Number;
                if( end == 1 )
                {
                    // Number is between 0 and 1, don't round.
                    randomNum = Math.random();
                }
                else{
                    // Number is between 0 and 100 or 1000, round the number
                    randomNum = Math.round( Math.random() * end );
                }
                // Show random number in TextInput
                randomNumber.text = randomNum.toString();
            }
           
        ]]>
    </fx:Script>
   
    <s:layout>
        <s:VerticalLayout paddingLeft="5" paddingRight="5"
                          paddingTop="5" paddingBottom="5" />
    </s:layout>
   
   
    <s:VGroup id="hgroup">
        <s:Button label="Number between 0 and 1"
                  click="generateRandomNumber(0,1)" width="250"/>
        <s:Button label="Number between 0 and 100"
                  click="generateRandomNumber(0,100)" width="250"/>
        <s:Button label="Number between 0 and 1000"
                  click="generateRandomNumber(0,1000)" width="250"/>
    </s:VGroup>
    <s:TextInput id="randomNumber" width="{hgroup.width}" editable="false"
                 textAlign="center" height="60" fontSize="20"
                 fontWeight="bold"/>
</s:Application>

Related posts:

  1. Easy Unix Time Function
  2. Data Dependant Tree Icon with Tree in AdvancedDataGrid with iconFunction
  3. Flex Custom Event Example
  4. Progressbar in Datagrid Example

Written by Arjan · Filed Under Examples 

Was this post useful to you?

Please rate this post, follow us @ twitter, or link to this page from your website!

1 Star2 Stars3 Stars4 Stars5 Stars (11 votes, average: 4.00 out of 5)
Loading ... Loading ...

3db21522a439e6af42c7eb588da6bb31delicious

Comments

One Response to “Random number in Flex”

  1. max on August 6th, 2010 10:01 am

    Your code for generating random integer number between 0 and a number different from 1 is not entirely correct. For example we want to generate an integer random number in the interal [0, 2]. Following yor example the probabilities for getting a 0 and a 1 are not equal. To get 0 (Math.random() * end) has to return a number in the interval [0, 0.5) so when rounded it will return 0. But to get 1, the number generated by (Math.random() * end) has to be in the interval [0.5, 1.5) which as you can see is two times bigger that the previous one. So the probability to get 1 compared to 0 is bigger. The same happens at the end of our wanted interval (in this example 2).
    The easiest way to get equal probability is with this function:

    private function rand(start:Number, end:Number):Number
    {
    return Math.ceil(Math.random()*(end-start+1)) % (end-start+1);
    }

    Note that this function too doesn't generate numbers with mathematically equal probability but it's close enough.
    Note2: This function also work if you pass it start=0, end=1

    To test that your example is not correct you can try this example:

    <![CDATA[

    private function rand(start:Number, end:Number):Number
    {
    return Math.ceil(Math.random()*(end-start+1)) % (end-start+1);
    }

    private function test_rand():void
    {
    var tmp:Array = new Array(0, 0, 0);
    var i:Number;
    var count:Number = 1000000;
    for( i = 0; i < count; i++ ) {
    //tmp[rand(0, 2)]++;
    tmp[Math.round(Math.random()*2)]++;
    }

    lbl_test_rand.text = "";
    for( i = 0; i

    With your algorithm you will get probabilities such as:
    0 -> 25%
    1 -> 50%
    2 -> 25%

    with the function rand() (uncomment it in the loop and comment out the line below it) you will get probabilities such as:

    0 -> 33%
    1 -> 33%
    2 -> 33%

Get Adobe Flash player

  • +1?

  • Support Flex Blog!

  • $ 13 raised
    • 2012/01/13 8:22 PM Russell Brown donated $ 3.00
    • 2011/10/31 4:43 PM Steve Dakin donated $ 5.00
    • 2011/05/11 3:37 PM Roelof Albers donated $ 5.00
  • Stay in touch!

  • Popular Tags

    • AdvancedDataGrid
    • AIR
    • ArrayCollection
    • baseColor
    • Button
    • CursorManager
    • DataGrid
    • Dynamic
    • Effects
    • File
    • FileStream
    • Flash Builder
    • Flash Builder 4
    • Flex 4
    • Flex Mobile
    • Framework
    • Icon
    • Image
    • itemRenderer
    • LinkBar
    • Mobile
    • PHP
    • ProgressBar
    • Repeater
    • Style
    • SWIZ
    • Timer
    • Tree
    • Twitter
    • ViewStack
  • Advertisements

  • Recent Posts

    • Spooky Frenzy – iPad Game
    • Fountain Example
    • Reading & Writing files in Adobe AIR
    • CheckBox in List using MobileIconItemRenderer for Flex Mobile
    • Data Dependent decoratorClass in MobileIconItemRenderer Example
    • Flex 4 Resize Effect Example
    • Jump to next field using the Focus Manager
    • Searching Data using a Class Example
    • Flex Mobile: Two finger tap gesture to toggle actionBar visibility in a View (AIR for Android)
    • TabbedMobileApplication Example in Flex Mobile (AIR for Android)
  • Categories

    • Examples
    • Guest Poster
    • iOS
  • Archives

    • September 2011
    • July 2011
    • May 2011
    • March 2011
    • February 2011
    • November 2010
    • October 2010
    • September 2010
    • August 2010
    • June 2010
    • May 2010
    • April 2010
    • March 2010
    • February 2010
    • January 2010
    • December 2009
    • November 2009
    • October 2009
    • March 2009
    • February 2009
  • Blogroll

    • Adobe Flex Jobs
    • NL for Business
  • Meta

    • Register
    • Log in
    • WordPress
    • XHTML

Copyright © 2010 Flex Blog · AdobeĀ® and AdobeĀ® Flex are registered trademarks of Adobe Systems.

WordPress Adobe Flex Adobe Flash Builder Adobe AIR Creative Commons License

  • Popular Posts

    • Progressbar in Datagrid Example 13 votes, average: 5.00 out of 513 votes, average: 5.00 out of 513 votes, average: 5.00 out of 513 votes, average: 5.00 out of 513 votes, average: 5.00 out of 5 (5.00 out of 5)
    • Data Dependant Tree Icon with Tree in AdvancedDataGrid with iconFunction 8 votes, average: 5.00 out of 58 votes, average: 5.00 out of 58 votes, average: 5.00 out of 58 votes, average: 5.00 out of 58 votes, average: 5.00 out of 5 (5.00 out of 5)
    • List Directory with AIR in Flex 4 7 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 5 (5.00 out of 5)
    • Flex FlashVars in AS3 Example 7 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 5 (5.00 out of 5)
    • Flex Dynamic Chart Example 4 votes, average: 5.00 out of 54 votes, average: 5.00 out of 54 votes, average: 5.00 out of 54 votes, average: 5.00 out of 54 votes, average: 5.00 out of 5 (5.00 out of 5)