![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Banned
Регистрация: Nov 2012
Сообщений: 43
|
Обратите внимание на два варианта скрипта, в них собственно и вопрос
for(var i:int = 0; i < 21; i++){ for(var i2:int = 0; i2 < 29; i2++){ var perem:Number = Math.random(); if(perem > 0.7){ var some:Enemy = new Enemy(); trace(i + " " + i2 + "\n"); mama[i][i2].push(true); //ПОЧЕМУ ТАК НЕ РАБОТАЕТ? //mama[i2].push(some);//ОДНАКО В УЧЕБНИКАХ СИЕ ИСПОЛЬЗУЕТСЯ! } } } ЗЫ мама - это массив (ну как бы с детками :3) |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Массив таки ДВУ-мерный или всетаки ТРЕХ-мерный?
push это метод массива. У Вас mama это массив, mama[i] это массив, mama[i][i2] — тоже массив? Что тогда означает код mama[i][i2] = true; ?
__________________
Reality.getBounds(this); |
|
|||||
|
Banned
Регистрация: Nov 2012
Сообщений: 43
|
Цитата:
//Build Massive var mama:Array = new Array(20); for(var j:int = 0; j < 21; j++){ mama[j] = new Array(29); } |
|
|||||
|
Регистрация: Jul 2007
Сообщений: 393
|
Запись
означает, что это трехмерный массив. Считайте внимательно
Поэтому и не работает. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Соответственно Вы можете вызвать метод push у этих массивов mama[j].
Но если Вы записываете туда Boolean (т.е. true или false), то как Вы собираетесь вызывать у них метод push? mama[i][i2] это уже ячейка вложенного массива. А точнее — ее содержимое (в вашем случае true).
__________________
Reality.getBounds(this); |
|
|||||
|
Banned
Регистрация: Nov 2012
Сообщений: 43
|
Цитата:
То есть как реализовать использую push(); ? |
|
|||||
|
Регистрация: Jul 2007
Сообщений: 393
|
push добавляет элемент без использования индекса, он просто добавляет элемент за последним.
Цитата:
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Banned
Регистрация: Nov 2012
Сообщений: 43
|
Цитата:
for(var i:int = 0; i < 20; i++){ for(var i2:int = 0; i2 < 27; i2++){ var perem:Number = Math.random(); if(perem > 0.7){ mama[i].push(true); trace(i + "\n"); } } } вариант 2 for(var i:int = 0; i < 20; i++){ for(var i2:int = 0; i2 < 27; i2++){ var perem:Number = Math.random(); if(perem > 0.7){ mama[i][i2] = true; trace(i + "\n"); } } } Бишь рандом значение ...повторюсь как реализовать последнее используя push(); - чтобы результат был сходным. как при использовании mama[i][i2] = true; (Каждому элементу второго , вложенного массива, было присвоено индивидуальное значение |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы читаете, что Вам пишут? (ладно хелп не читаете, это ваше дело).
push() добавляет элемент в конец массива. Ему нет дела до того, какое сейчас значение у переменной-итератора цикла i2. Если Вы не делаете push() (а Вы не делаете, когда рэндом не больше 0.7), то ничего и не добавляется. Ничего — означает "и ячейки тоже". Сама собой пустая ячейка не возникнет, флэш не умеет читать Ваши желания. Либо полностью комплектуйте массив ячейками и значениями, либо используйте оператор = (не понимаю, чем Вас это не устраивает).
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|