AS3 — удаление кнопки и ее повторное добавление

Звучит как странный вопрос, я знаю.

removeChild();
addChild();

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

поэтому мне интересно, есть ли способ сбросить его либо до его удаления, либо после его добавления.

Я не могу использовать gotoAndStop(1);, потому что работаю с файлом пакета.


person Eddie Gordon    schedule 16.12.2011    source источник
comment
Можно ли просто скрыть кнопку, пока она снова не понадобится?   -  person Coronus    schedule 17.12.2011
comment
потенциально, но это будет использовать память, мне не нравится, когда объекты находятся вне сцены.   -  person Eddie Gordon    schedule 17.12.2011


Ответы (1)


Чтобы ответить на ваш вопрос о сбросе при добавлении или удалении объекта со сцены:

addEventListener(Event.ADDED_TO_STAGE, function(ev:Event):void
{
    trace('Added');
});

addEventListener(Event.REMOVED_FROM_STAGE, function(ev:Event):void
{
    trace('Removed');
});

Вы можете сбросить состояние в любой из этих функций, но я не вижу причин избегать делать это явно, например. object.reset().

person Sean Fujiwara    schedule 17.12.2011
comment
хм, я не уверен, что это помогает, здорово, что вы можете слушать эти события, но я пытаюсь вернуть кнопку в нормальное состояние, чтобы, когда я добавляю ее на сцену, она не выглядела так, как будто кто-то уже навис над это, когда кнопки удаляются со страницы, а по возвращении они белые, застряли в состоянии наведения. Это для приложения iOS, но я предполагаю, что это не имеет значения. object.reset(): не работает, очевидно, я меняю объект на library_btn или библиотеку как импортированную библиотеку классов:library_btn=new library_btn; Спасибо за любую дополнительную помощь :) Thor110 - person Eddie Gordon; 17.12.2011
comment
Итак, ваш вопрос: как изменить состояние класса SimpleButton? Судя по всему, вы не можете. Просто переключиться на visible — самый простой способ исправить это. Нет разницы в использовании памяти, если только вы не используете cacheAsBitmapMatrix и не имеете в виду память графического процессора (поскольку вы ориентируетесь на iOS). - person Sean Fujiwara; 18.12.2011