as3 random – generator liczb losowych
Liczby losowe to nieodzowny element wielu aplikacji flashowych, jednak czasami najprostszy kod może sprawiać problemy. Ostatnio potrzebowałam prostego generatora liczb losowych który z danej puli numerów wylosuje mi 10 liczb. Poniżej przedstawiam prosty kod oraz pliki źródłowe do ściągnięcia, dla zainteresowanych:-)
Oto cały kod odpowiedzialny za działanie generatora, poniżej opisze dokładnie jego działanie.
import flash.events.MouseEvent; btn.addEventListener(MouseEvent.CLICK, deal); var total:int = 10; var startNum:int = 1; var endNum:int = 400; function deal(e:MouseEvent):void{ for (var i:int; i < total; i++) { var j:int = i+1; var myNum:Number = Math.ceil(Math.random() * endNum) + startNum; trace(myNum); this["t"+j].text = String(myNum); } }
1.Po pierwsze w actionscript 3 musimy pamietać o importowaniu klas, inaczej wszystko bierze w łeb.
import flash.events.MouseEvent; //importuje klasę odpowiedzialną za wykonywanie akcji myszką lub kursorem jak kto woli:-)
2.Nasłuchuję czy przycisk został kliknięty
btn.addEventListener(MouseEvent.CLICK, deal); //na scenie znajduje się movieclip którego nazwą instancji jest „btn” po którego kliknięciu uruchomi się funkcja „deal”
3.Definiuję zmienne
var total:int = 10; //ilość numerów które mają być losowane var startNum:int = 1; //początkowa liczba od której ma zacząć się losowanie, ponieważ nie chcę aby losowanie zaczynało się od domyślnego zera wpisuję w tym miejscu 1, ale można losować od dowolnej liczby var endNum:int = 400; //maksymalna liczba z której generator numerów losowych może losować, w tym przypadku jest to 400
4.Funkcja generująca liczby losowe
function deal(e:MouseEvent):void{ for (var i:int; i < total; i++) { var j:int = i+1; var myNum:Number = Math.ceil(Math.random() * endNum) + startNum; trace(myNum); this["t"+j].text = String(myNum); } }
Kiedy funkcja jest wywoływana przez jakieś wydarzenie (event) należy w nawiasie wpisać na jakiego rodzaju wydarzenie ta funkcja ma reagować. Ponieważ funkcja odpalana jest po kliknięciu, w nawiasie wpisujemy „e:MouseEvent” e to skrót od event, ale można tam wpisać cokolwiek, ja używam „e” bo tak jest krócej.
Następnie w pętli for odbywa się losowanie numeru. Metodę uzyskiwania liczb losowych w actionscript 3 opisałam szczegółowo w artykule: as3 random – liczby losowe w actionscript 3