Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите с массивом (http://www.flasher.ru/forum/showthread.php?t=204134)

Bluebird2121 21.10.2013 12:18

Помогите с массивом
 
Доброго времени суток подскажите пожалуйста в чем ошибка.
Есть 12 массивов:

Код AS3:

var vt1:Array =["a", "b", "c"];
    ........................................
var vt12:Array =["a12", "b12", "c12"];

Есть ф-я которая определяет случайный массив

Код AS3:

private function onrandomizer():void  {
variant = 1+Math.random()*12;//Находим случайную цифру 1—12
trace(variant);//Выводи номер 1—12

И собственно проблема: как обратится к этому массиву? Пробовал так,

Код AS3:

trace (getChildByName(»vt»+variant));

но выдает ошибку ((

samana 21.10.2013 12:22

Во-первых, выражение 1+Math.random()*12 вернёт вам число с плавающей точкой, а нужно получить целое число, ведь индексы в массивах - это целые числа.
Обращение в массиве происходит с помощью квадратных скобок.
Код AS3:

trace(vt[0]) //a
trace(vt12[2]) //c12


Bluebird2121 21.10.2013 12:30

Спасибо, но мне нужно обратится не к индексу массива, а к одну из 12 массивов в случайном порядке.

caseyryan 21.10.2013 12:38

Код AS3:

var array:Array = this["vt" + int(Math.random() * 12 + 1)];

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

udaaff 21.10.2013 12:39

Код:

this["vt" + index]

ObOs 21.10.2013 12:41

Ну сделайте массив массивов

Код AS3:

var arraysList:Array = [vt1, vt2, ... ,vt12];
trace(arraysList[Math.floor(Math.random()*12)]);


Bluebird2121 21.10.2013 12:42

Спасибо огромное!


Часовой пояс GMT +4, время: 08:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.