Actionscript 3 flash удаление ребенка - вернуть его? - PullRequest
0 голосов
/ 31 марта 2011

я только начал изучать flash. В любом случае, у меня есть мувиклип, который удаляется при выходе из игры, например, из меню. removeChild(character). Когда я нажимаю «Пуск» в меню, я бы хотел, чтобы персонаж снова появился. Как я могу добавить его снова, только если он был удален?

Ответы [ 6 ]

2 голосов
/ 01 апреля 2011

Вы можете снова использовать addChild, чтобы добавить его.Чтобы проверить, был ли он добавлен / удален, вы можете проверить, является ли его свойство stage истинным.

if (!character.stage) 
{
    addChild(character);
}
0 голосов
/ 02 апреля 2011
if (!yourContainer.contains(character)) yourContainer.addChild(character);

В этом коде предполагается, что «yourContainer» является действительной ссылкой DisplayObjectContainer, а «символ» является ненулевой ссылкой на DisplayObject.

Также убедитесь, что вы сохраняете ссылкувашему персонажу MovieClip / Sprite, кроме простого добавления в список отображения, так что это не GC'd.

0 голосов
/ 01 апреля 2011

Сначала вам нужно убедиться, что у вас есть ссылка на мувиклип, который вы хотите добавить на сцену. Если вы создаете этот мувиклип в функции и не сохраняете ссылку, вам нужно будет выполнить «грязный» поиск, чтобы получить ссылку. Вот пример того, как создать ссылку для последующего использования:

var myMovieClip : MovieClip; // make sure you have this outside of a function

function createMyMovieClip() : void
{
    myMovieClip = new MovieClip();
    addMyMovieClip();
}

Теперь, когда у вас есть ссылка на MovieClip, вы можете сделать что-то вроде этого:

function addMyMovieClip() : void
{
    stage.addChild( myMovieClip );
}

function removeMyMovieClip : void
{
    stage.removeChild( myMovieClip );
}
0 голосов
/ 01 апреля 2011

при удалении сохраняй в var

var mySavedCharacter:MovieClip = characater
removeChild(character)

При добавлении обратно просто добавьте сохраненную переменную

addChild(mySavedCharacter)

Также помните, что объекты передаются по ссылке, поэтому изменение символа также изменит mySavedCharacter.

0 голосов
/ 01 апреля 2011

Проверьте родительское свойство персонажа, чтобы увидеть, прикреплено ли оно к чему-либо.Однако обратите внимание, что совершенно нормально использовать addChild для уже добавленного экранного объекта.

0 голосов
/ 01 апреля 2011

Может, вы просто хотите изменить видимость ребенка или временно исключить его из макета?

...