Если вы кодируете на временной шкале, самый простой способ - поместить вашу игру (графику, код и т. Д.) В собственный MovieClip, а не на основную временную шкалу. Затем вы можете удалить эту обертку MovieClip со сцены, когда игра будет завершена, либо перейдя к кадру, где этот MovieClip не существует, либо используя removeChild
в вашем коде.
Если вы используете файл (ы) классов, концепция та же: поместите игру в собственный клип. В этом случае ваша игра будет естественным образом обернута в собственный клип, потому что это будет Sprite: class Game extends Sprite
. Но вместо использования Game в качестве класса Document вы хотите создать и добавить его на сцену, используя следующий код:
var game:Game = new Game();
addChild(game);
Точно так же вы можете просто удалить свой экземпляр Game со сцены, когда игра закончится, используя removeChild(game);
.
Это обеспечивает удаление игрового дисплея после завершения игры. Самая важная часть заключается в том, что вы должны удалить ENTER_FRAME
, KEY_DOWN
и всех других слушателей, которых могла создать ваша игра. Даже если вы удалите свою игру со сцены, эти обработчики ENTER_FRAME
будут продолжать работать (возможно, неопределенно долго). Это часто приводит к ошибкам и проблемам с производительностью, потому что игра продолжает работать, даже если вы хотите, чтобы она остановилась. Поэтому, когда игра заканчивается, сначала удалите этих слушателей событий, используя removeEventListener
. (Также полезно, если вы можете ограничить вашу игру минимальным количеством ENTER_FRAME
слушателей, чтобы этот шаг был легким.) Тогда можно безопасно удалить игровой клип со сцены.