Очистить класс (новый ClassName ()) - PullRequest
0 голосов
/ 27 июля 2010

Вопрос: Что такое Аверс у животных: Pets = new Pets (); ??

Сценарий:

 package {

   import flash.events.MouseEvent;

   public class Pets {

     public function Pets() {
       // constructor code
       my_btn.addEventListener(MouseEvent.CLICK, onClick)
     }

     private function onClick(e:MouseEvent) {
       trace(Start);
     }
   }
 }

Проблема: когда я вызываю класс Pets из другого класса (new Pets ()); , он запускает класс и addEventListener работает нормально, НО:

Первый раз: результат трассировки

Начало

Второй раз: результат трассировки

Начало
Начало

Третий раз: результат трассировки

Начало
Начало
Начало

Как и ....

Большое спасибо

1 Ответ

2 голосов
/ 27 июля 2010

Предполагая, что my_btn является экземпляром кнопки на сцене, каждый раз, когда вы создаете новый экземпляр Pets, вы добавляете новый обработчик события MouseEvent.CLICK к тому же экземпляру my_btn.

Есть несколько способов исправить это, но это зависит от того, как вы хотите, чтобы все работало.Если вы хотите, чтобы существовал только один экземпляр my_btn, добавьте обработчик MouseEvent.CLICK вне класса Pets (и добавьте его только один раз).Если каждому экземпляру Pets нужна своя собственная кнопка, вам нужно создать новый экземпляр my_btn для каждого экземпляра Pets (в настоящее время похоже, что вы ссылаетесь на один и тот же экземпляр my_btn во всех Pets экземплярах).).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...