HaxeFlixel: this.destroy() внутри update()

[12:59:29] realyun1: Вопрос по flixel: Если я вызываю this.destroy() внутри update(), то приложение вылетает:

Called from ApplicationMain::main, ApplicationMain.hx 61
Called from Lib::create, flash/Lib.hx 89
Called from extern::cffi, /usr/lib/haxe/lib/hxcpp/3,0,2//src/hx/Lib.cpp 135
Called from Stage::__processStageEvent, flash/display/Stage.hx 444
Called from Stage::__doProcessStageEvent, flash/display/Stage.hx 333
Called from Stage::__pollTimers, flash/display/Stage.hx 866
Called from Stage::__checkRender, flash/display/Stage.hx 265
Called from Stage::__render, flash/display/Stage.hx 879
Called from DisplayObjectContainer::__broadcast, flash/display/DisplayObjectContainer.hx 267
Called from DisplayObject::__broadcast, flash/display/DisplayObject.hx 169
Called from DisplayObject::__dispatchEvent, flash/display/DisplayObject.hx 185
Called from EventDispatcher::dispatchEvent, flash/events/EventDispatcher.hx 89
Called from Listener::dispatchEvent, flash/events/EventDispatcher.hx 257
Called from FlxGame::onEnterFrame, org/flixel/FlxGame.hx 366
Called from FlxGame::draw, org/flixel/FlxGame.hx 683
Called from FlxState::draw, org/flixel/FlxState.hx 113
Called from FlxTypedGroup::draw, org/flixel/FlxTypedGroup.hx 129
Called from FlxTypedGroup::draw, org/flixel/FlxTypedGroup.hx 129
Called from FlxTypedGroup::draw, org/flixel/FlxTypedGroup.hx 127

Можно как-то уничтожить объект внутри update?
(примечание: от этого вопроса скроллить сразу вниз на ответ от автора HaxeFlixel (a_hohlov), если интересен не ход рассуждений участников, а только ответ на вопрос)

"неправильном" порядке:
[13:14:42] SlavaRa: [13:14] Dima (deep):

<<< нету. ты не можешь после валидации всех детей и перед рендером чтото сделать, эти этипы скрыты от насинвалидация именно по этому и есть!
[13:14:57] a_hohlov: одни объекты уже вызвали эти три метода, а до других еще очередь не дошла
[13:15:09] SlavaRa: я могу или не делать или сделать, ед. что это не совсем красиво
[13:16:31 | Изменены 13:16:39] SlavaRa: @Deep, глянь про Event.RENDER и инвалидацию

[13:17:13] a_hohlov: друзья, вы обсуждаете фликсел с точки зрения обычного дисплей листа, но он работает по другому
[13:17:15] SlavaRa: я юзаю
[13:17:45] Dima (deep): я смотрю на фликсел как на систему контейнеров и инвалидацией и валидацией
[13:17:47] SlavaRa: [13:17] Александр Хохлов:

<<< друзья, вы обсуждаете фликсел с точки зрения обычного дисплей листа, но он работает по другомуя некрещеный и вера у меня, ну вы поняли.... самоубийцы даже в ней не труЪ
[13:18:25] Dima (deep): апдейт у тебя по сути этап валидации, делать кил на этапе валидации больно в любой системе
[13:18:47] a_hohlov: что имеется в виду под валидацией?
[13:18:59] a_hohlov: фликсел - очень "глупый"
[13:19:01] SlavaRa: пререндер
[13:19:08] a_hohlov: там два этапа
[13:19:23] a_hohlov: update() - это обновление логики
[13:19:37] a_hohlov: draw() - это обновление вида
[13:19:53] Dima (deep): тогда в апдейт килл должен работать


[13:20:26] a_hohlov: так вопрос не в том, что килл не работает, а в том, что destroy() вызывает ошибку destroy() - он нужен для обнуления всех ссылок внутри объекта, для облегчения работы сборщика мусора а kill() - для возможности повторного использования объектов
если у вас в игре есть такие объекты и вы их убиваете (методом kill()), и их мало, то они мало влияют на производительность
так как в методах update() и draw() есть проверки на active и visible, которые у "мертвого" объекта - false
при этом есть возможность их заново оживить с помощью метода recycle(objectClass = null):T
то есть вы можете "оживить" объект определенного класса
надеюсь, все понятно

и если бы Александр вызвал метод destroy() и в "старой" системе (с тремя update() методами), то это все равно бы вызвало ошибку