Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Полное удаление объекта (http://www.flasher.ru/forum/showthread.php?t=136557)

Nejasytj 19.02.2010 15:14

Полное удаление объекта
 
Всем привет!

Объявляю два объекта (addChild). Один неподвижный, другой тоже по бошке получит летает. Во время соприкосновения (hitTestObject) запускается функция, в которой уберается статичный объект (removeChild) и меняет направление летающий.
Первый раз касаются друг друга - всё как бы хорошо и статичный объект удаляется. Но когда второй раз летит в то место, то функция срабатывает опять. Т.е. как буд-то не убрался объект, а стал невидимым.

Вот код функции:

Код AS3:

 function polet(e:Event):void{
        directionX = dirKoefX * 1;
        directionY = dirKoefY * 1;
        Shar_mc.y -=accelerate * directionY;
        Shar_mc.x -=accelerate * directionX;
        if (Shar_mc.y < 0+21 || Shar_mc.y > 400-21){
                dirKoefY = directionY * -1;
        }
        if (Shar_mc.x < 0+21 || Shar_mc.x > 550-21){
                dirKoefX = directionX * -1;
        }
        if (Shar_mc.hitTestObject(block1)){
                dirKoefY = directionY * -1;
                removeChild(block1);
        }
}


dixus 19.02.2010 15:28

Для того, чтобы hitTestObject выполнялся, сравниваемые объекты вообще не обязаны быть выложены на сцену, т.е. removeChild на результат hitTestObject не влияет (точнее влияет только когда сравниваемый объект расположен не в корневом мувиклипе). Стоит прекратить проверять block1 на коллизию с Shar_mc после первого попадания и удалить все ссылки на него.


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

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