Форум 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=107199)

PeTa4eK 28.01.2008 08:06

Полностью удалить мувик + его класс
 
Допусти я создаю определенный клас на рут
var enemy:game.enemy = new game.enemy();
addChild(enemy);

Как его потом полностью удалить? именно со своим классом..
Потому что если писать просто removeChild(enemy) удаляется вроде токо визуальная часть класса, и поетому потом вылазиют ошибки типо немогут выполнятся действия для нулл обьектов.
пример ошибки:
Цитата:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at game::enemy/update()
Вобщем как полностью удалить то что я создал?

Ajshma 28.01.2008 09:06

Логически подходи к этой проблеме.
У тебя выскакивает ошибка по методу update() объекта enemy.
Это означает, что ты обращаешься к этому методу либо когда уже объект удален снаружи, либо изнутри самого удаленного объекта.
Скорее всего у тебя внутри объекта висит евент, который этот метод вызывает. Что нужно сделать? Всего лишь, написать метод удаления объекта, который исключит работу евентов уже после удаления объекта.
В методе удаления напиши удаление всех евентов внтури объекта и только потом применяй parent.removeChild(this).

PeTa4eK 28.01.2008 10:21

Вобщем большое спасибо. Твой скрипт не помог но ты наталкнул меня на путь истинный :) я просто удалил метод update с помощью removeEventListener(Event.ENTER_FRAME,update) и удалил чхилд.
Спасибо!

etc 28.01.2008 10:25

PeTa4eK, вы где-нибудь в флешовом фреймворке видели классы, у которых имена с маленькой буквы начинаются? Если нет, то почему ваши классы имеют имена с маленькой буквы?

Ajshma 28.01.2008 10:35

PeTa4eK, еще как бы помог. Ты сделал точно также, только через задницу ;)
Мой совет является более правильным в том плане, что в метод удаления самого себя ты потом можешь добавить удаление любого евента, который в последствии добавил. _etc не даст соврать ;)

PeTa4eK 31.01.2008 05:47

Цитата:

PeTa4eK, вы где-нибудь в флешовом фреймворке видели классы, у которых имена с маленькой буквы начинаются? Если нет, то почему ваши классы имеют имена с маленькой буквы?
Спасибо все исправил... А то я думал почему немогу просто загрузить класс не используя полный путь от фла.

Блин проблема осталась... незнаю почему вылазиют ошибочки :( вобщем вот исходник:
-УДАЛЕНО-
Управление стрелками, левая кнопка вытащить лезвия.Помогите плиззз!
Ошибки:
Цитата:

at Game::FireBullet/update()
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Game::Enemy/update()
TypeError: Error #1009: Cannot access a property or method of a null object reference.
Вроде и удаляю и нет а всеравно эта долбаная ошибка!

PeTa4eK 01.02.2008 05:26

Вобщем решил свою проблему. Конечно через попу. Ошибка помоему была изза того что почемуто выполнялось еще какоето действие после удаления...
Вобщем я создал переменную которая меняет свое значение при удалении евента, и потом если значение какоето то удаляется графическая составляющая в другом евенте(тот уже удален).


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

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