PDA

Просмотр полной версии : Проблемма с заполнением массива


teror132
26.06.2010, 15:40
w=new Array(3)
for (i=1; i=3; i++){
for(q=1; q=3; q++){
w[i]=Math.sqrt(q)
}
}


Комп ругается:rtfm:.. Говорит что это бесконечный цикл...:(
Хотя я так в паскале всю жизнь таким образом заполнял массивы... Помогите плз. Если что, вот ссылка на исходник (http://*****************/files/j3lsvvx7u). Там он недоделан, выбрать первую радиокнопку и нажать "начертить". Фрагмент, который представлен здесь находится в кнопке "Начертить".

rainbowrussia
26.06.2010, 15:48
i=3 -> i<=3
q=3 -> q<=3

+ читать о циклах в AS2 и не стараться применять паскалевские навыки :)

ps. Массивы нумерутся с "нуля".

in4core
26.06.2010, 17:23
Кстати почти по теме, как запушить в массив имена мувиклипов из контейнера?
Ну например есть массив arr . Есть клип контейнер MC . а внутри много мувиков типа MC.MV , MC.DD и т.д.
for(var i in MC) {
arr.push(MC[i]) } Не прокатит это явная ошибка))) Как делать то?

mooncar
26.06.2010, 17:34
Что вас не устраивает? Не ошибка это... У вас же там не бесконечное содержание внутри.
Разве что условие сделать, если не уверены относительно того, что там внутри еще есть, кроме мувиков, а нужны только они.
Да вообще любое условие - по имени, по свойствам каким-то.

var arr:Array = new Array();
for (var i in MC)
{
if (typeof(MC[i]) == 'movieclip')
{
arr.push(MC[i]);
}
}

Проверяем
for (var i in arr)
{
trace(arr[i]);

}
Выводит:
_level0.MC.mc1
_level0.MC.mc2
...


Приходилось мне так заполнять массив, когда был неопределен состав контента, но его нужно было взять в отдельный массив для дальнейшего использования.

in4core
26.06.2010, 17:37
Спасибо, забыл о свойсте typeof ....

Добавлено через 1 минуту
эээ Тока перечитал еще раз. Как опнять не ошибка? Я сразу написал в таком ключе и кроме клипов там ничего лишнего нету, но на выводе Undefined

Добавлено через 3 минуты
ха ))) var arr:Array = new Array();
я же писал просто var arr;

Странно что приведения типов не происходит)))

mooncar
26.06.2010, 17:40
Без typeof тоже можно обойтись, если вам известно, что внутри находится все нужное для отбора в массив.

Добавлено через 1 минуту

Странно что приведения типов не происходит)))
Какого еще приведения типов? У вас просто массив не был определен перед тем как его заполнять с помощью push, оттого и Undefined.

teror132
27.06.2010, 11:38
Спасибо огромное, всё работает)