Форум 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)
-   -   MoveClip и массив (http://www.flasher.ru/forum/showthread.php?t=139955)

noode 16.05.2010 02:10

MoveClip и массив
 
Проблема, проблема и еще раз проблема!
Ребятки такое дело.
Имеется массив в который с течением времени закидываются мувики и позже при столкновении должны удаляться. Вот и проблема в том что не могу дойти до тогочтобу осуществилось удаление!

Код AS1/AS2:

arrFoor = new Array();
 
 
function foorPlace()
{
        fram++;
        if (fram % 50 == 0)
        {
                arrFoor.push(attachMovie('foor' + random(5), 'foor' + i, i, {_x:250, _y:37}));
                i++;
        }
        for (k = 0; k < arrFoor.length; k++)
        {
                arrFoor[k]._y += 10;
                if (arrFoor[k].hitTest(baraban.hitO))
                {
                        arrFoor.splice(0,1);
                        arrFoor[k].removeMovieClip();
                }
        }
}
 
 
onEnterFrame = function ()
{
        foorPlace();
}


in4core 16.05.2010 03:55

Код AS1/AS2:

arrFoor = new Array();
 
function foorPlace(){
    fram++;
    if(fram%50==0){
          arrFoor.push(attachMovie('foor'+random(5),'foor'+i, i,{_x:250, _y:37})); // 'foor'+random(5),'foor'+i, неадекватное написание рандом и задания имени. Но даж не в этом дело
          i++;
            }
        for(k=0;k<arrFoor.length;k++){
                arrFoor[k]._y+=10;
                trace(arrFoor)// провести
                if(arrFoor[k].hitTest(baraban.hitO)){
                        trace(arrFoor[k]) // тоже
                        arrFoor.splice(0,1);
                        arrFoor[k].removeMovieClip();
trace (arrFoor[0]  instanceof MovieClip) // тоже
                        }
                }
        }
 
 
onEnterFrame = function(){
        foorPlace();
        }


noode 16.05.2010 04:10

странно
на проверку с мувиклипом пишет false иногда true
_level10 - что это значит?

udaaff 16.05.2010 04:59

Вы сначала удаляете элемент из массива, а потом пытаетесь вызвать removeMovieClip() на элементе, которого там уже нету.

noode 16.05.2010 05:15

даже если написать так

Код AS1/AS2:

arrFoor[k].removeMovieClip();
arrFoor.splice(0,1);
if(arrFoor[k].removeMovieClip){trace('mc deleted')}

то все равно трэйс не выходит, а со сцены мувик пропадает!

udaaff 16.05.2010 05:37

А с какой радости он срабатывать должен?

noode 16.05.2010 05:46

так если мувик сам пропадает со сцена при использовании removeMovieClip
почему же не выходит трэйс?

udaaff 16.05.2010 05:57

Потому что он у вас должен вывестись при каком-то непонятном условии.
if(arrFoor[k].removeMovieClip)

noode 16.05.2010 05:59

и как же задать правильно?

NoCD 16.05.2010 06:13

как то так:
if(!arrFoor[k])


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

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