2011-01-31 3 views
0

В принципе мне нужно «изображение» быстро меняющихся чисел. Я планирую иметь ряд из них в строке, вроде матрицы (как числа меняются несколько раз). Я хочу, чтобы они в основном генерировали числа 0-9 снова и снова довольно быстро (вроде миллисекунд на секундомере), пока я их не исчезну.Вспышка: случайное генерирование чисел 0-9 повторяется

Я довольно новичок в flash, поэтому, если вы, ребята, могли бы помочь мне с кодом, я был бы очень признателен!

ответ

2

Как указано получить случайное число в диапазоне от 0 до 9, Math.random это путь:

var n:int = Math.floor(Math.Random()*10); 

Но для решения второго вопроса, как получить его, чтобы он делает это каждую миллисекунду

import flash.utils.setInterval; 
import flash.utils.clearInterval; 

//variable for the intervalID, 
//and the variable that will be assigned the random number 
var rnGenIID:uint, rn:int; 

//function to update the rn variable 
//to the newly generated random number 
function updateRN():void{ 
    rn = random0to9(); 
    //as suggested, you could just use: 
    //rn = int(Math.random()*10); 
    //but I figured you might find having it as a function kind of useful, 
    //... 
    //the trace is here to show you the newly updated variable 
    trace(rn); 
} 
function random0to9():int{ 
    //in AS3, when you type a function as an int or a uint, 
    //so instead of using: 
    //return Math.floor(Math.random()*10); 
    //or 
    //return int(Math.random()*10); 
    //we use: 
    return Math.random()*10; 
} 

//doing this assigns rnGenIID a number representing the interval's ID# 
//and it set it up so that the function updateRN will be called every 1 ms 
rnGenIID = setInterval(updateRN,1); 

//to clear the interval 
//clearInterval(rnGenIID); 
+0

Почему вы используете 'setInterval' вместо рекурсивного' Timer' след? –

+2

@Matt McDonald, 'setTimeout' /' setInterval' являются более легкими, чем 'Timer', поскольку это языковая конструкция. Если вы знаете, что вы делаете с ними, они могут творить чудеса. Чтобы помочь новичку со вспышкой, я бы предложил «Таймер». – zzzzBov

+0

Ну, я отвечу на вопрос? имеет значение, в какой порядок входит случайное число? если нет, я избегаю класса Timer. Я также пытался облегчить его и других людей, просматривающих это, что может быть использовано для javascript. –

1

только быстрый наконечник: литье число (Math.random() * 10) в Int

int(n); 

делает то же самое, что и

Math.floor(n); 

и путь быстрее. мы можем получить Math.round(), добавив .5 п

int(n + .5); 

и Math.ceil() путем добавления 1 к результату

int(n) + 1; 

вот петля для проверки:

var n:Number; 
var i:int; 
var total:int = 100000; 
for (i = 0; i < total; i++) 
{ 
    n = Math.random() * 10; 
    if (int(n) != Math.floor(n)) trace('error floor ', n); 
    if (int(n + .5) != Math.round(n)) trace('error round ', n); 
    if (int(n) + 1 != Math.ceil(n)) trace('error ceil ', n); 
} 

это, не надо ничего :)

+0

Как это использовать вместе с именем экземпляра? (фактическое число) –

+0

не уверен я понял: var newName: String = instance.name + '_' + int (Math.random() * 10) .toString(); возвращает строку, состоящую из имени экземпляра, разделителя '_' для читаемости, а число - как String.если ваш экземпляр называется «abc», он даст строку «abc_X», где X - это число. – nicoptere

Смежные вопросы