Понедельник, 25 Ноября 2024, 11:35

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
зависани програмы,помогите решить.
ggmanДата: Вторник, 27 Декабря 2011, 20:02 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Создаю новый проект, в нем мувиклип fish класа Fish.
дальше юзаю этот код:
Code
  
var fishes:Array = new Array();  
var MYfish:Fish = new Fish();  
var i: int;
var amount: int = 10;
       
for (i = fishes.length; i < fishes.length + amount; i++ )
  {
     addChild(MYfish);  
     fishes.push(MYfish);
     fishes[i].x = 100 + Math.random()*10;
     fishes[i].y = 100 + Math.random()*10;
  }


но при выполнении вроде бы простого цикла программа виснет на 15 секунд, а потом создает толи всего один элемент, толи все елементы в одной точке. подскажите, что я делаю не так?
TimKruzДата: Вторник, 27 Декабря 2011, 20:29 | Сообщение # 2
старожил
Сейчас нет на сайте
ggman, наверное цикл описывается неверно. Массив fishes - динамический, так? Значит длины (length) он изначально не имеет совсем, а ты ею оперируешь...

DemeronДата: Вторник, 27 Декабря 2011, 20:33 | Сообщение # 3
User created in C++
Сейчас нет на сайте
Code
fishes.push(MYfish);

Все время увеличивает длину.

Сделай примерно так:
Code

var fishes:Array = new Array();     
    var MYfish:Fish = new Fish();     
    var i: int;    
    var amount: int = 10;    
    var len: int;
             
    len=fishes.length + amount;
    for (i = fishes.length; i < len; i++ )    
     {    
        addChild(MYfish);     
        fishes.push(MYfish);    
        fishes[i].x = 100 + Math.random()*10;    
        fishes[i].y = 100 + Math.random()*10;    
     }


Сообщение отредактировал Demeron - Вторник, 27 Декабря 2011, 20:34
prog_154rusДата: Вторник, 27 Декабря 2011, 20:34 | Сообщение # 4
Lonely Developer
Сейчас нет на сайте
TimKruz, нет. Во флеш длина меняется, но она есть. Это особенность такая. Есть длина и есть емкость

Добавлено (27.12.2011, 20:34)
---------------------------------------------
Смотри: у тебя длина массива увеличивается каждую итерацию. А значит, цикл бесконечный

DemeronДата: Вторник, 27 Декабря 2011, 20:39 | Сообщение # 5
User created in C++
Сейчас нет на сайте
Quote (prog_154rus)
Смотри: у тебя длина массива увеличивается каждую итерацию. А значит, цикл бесконечный

Глянь чуть выше на мой пост wink
prog_154rusДата: Вторник, 27 Декабря 2011, 20:45 | Сообщение # 6
Lonely Developer
Сейчас нет на сайте
Demeron, ну опаздал немного smile
ggmanДата: Вторник, 27 Декабря 2011, 22:21 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Народ, всем спасибо, выручили))
Ну я тупанул с этим зацыкливанием))


Сообщение отредактировал ggman - Вторник, 27 Декабря 2011, 22:54
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг