Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблемма с заполнением массива (http://www.flasher.ru/forum/showthread.php?t=141499)

teror132 26.06.2010 15:40

Проблемма с заполнением массива
 
Код AS1/AS2:

w=new Array(3)
for (i=1; i=3; i++){
        for(q=1; q=3; q++){
                w[i]=Math.sqrt(q)
        }
}

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

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 и т.д.
Код AS1/AS2:

for(var i in MC) {
  arr.push(MC[i]) }

Не прокатит это явная ошибка))) Как делать то?

mooncar 26.06.2010 17:34

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

Код AS1/AS2:

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

Проверяем
Код AS1/AS2:

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 минуту
Цитата:

Сообщение от in4core (Сообщение 918241)
Странно что приведения типов не происходит)))

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

teror132 27.06.2010 11:38

Спасибо огромное, всё работает)


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

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