Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.10.2013, 12:18
Bluebird2121 вне форума Посмотреть профиль Отправить личное сообщение для Bluebird2121 Найти все сообщения от Bluebird2121
  № 1  
Ответить с цитированием
Bluebird2121

Регистрация: Oct 2013
Сообщений: 5
По умолчанию Помогите с массивом

Доброго времени суток подскажите пожалуйста в чем ошибка.
Есть 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));
но выдает ошибку ((


Последний раз редактировалось udaaff; 21.10.2013 в 12:36.
Старый 21.10.2013, 12:22
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Во-первых, выражение 1+Math.random()*12 вернёт вам число с плавающей точкой, а нужно получить целое число, ведь индексы в массивах - это целые числа.
Обращение в массиве происходит с помощью квадратных скобок.
Код AS3:
trace(vt[0]) //a
trace(vt12[2]) //c12

Старый 21.10.2013, 12:30
Bluebird2121 вне форума Посмотреть профиль Отправить личное сообщение для Bluebird2121 Найти все сообщения от Bluebird2121
  № 3  
Ответить с цитированием
Bluebird2121

Регистрация: Oct 2013
Сообщений: 5
Спасибо, но мне нужно обратится не к индексу массива, а к одну из 12 массивов в случайном порядке.

Старый 21.10.2013, 12:38
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Код AS3:
var array:Array = this["vt" + int(Math.random() * 12 + 1)];
Но эта архитектура довольно корявая, потому что может и не быть какого-то из массивов. Я бы лучше затолкал все эти массивы в другой массив, и обращался бы к случайному индексу в нем, получая нужный массив

Старый 21.10.2013, 12:39
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
this["vt" + index]

Старый 21.10.2013, 12:41
ObOs вне форума Посмотреть профиль Отправить личное сообщение для ObOs Найти все сообщения от ObOs
  № 6  
Ответить с цитированием
ObOs
 
Аватар для ObOs

Регистрация: Jul 2009
Сообщений: 149
Ну сделайте массив массивов

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

Старый 21.10.2013, 12:42
Bluebird2121 вне форума Посмотреть профиль Отправить личное сообщение для Bluebird2121 Найти все сообщения от Bluebird2121
  № 7  
Ответить с цитированием
Bluebird2121

Регистрация: Oct 2013
Сообщений: 5
Спасибо огромное!

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:18.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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