Як відключити клас

В головний клас імпортується кілька класів у яких описані дії які будуть при натисканні на кнопку.
Треба або прибити непотрібні в даний момент класи (пробував командою delete nameclass, помилка 1 189: Attempt to delete the fixed property docs. Only dynamically defined properties can be deleted. Не зрозуміло.) Або видаляти дії але з головного класу в імпортованих не виходить

Ненадо нікого прибивати - просто вішаєте лістенер на мишаче подія а оброблювачем лістенера потрібний метод потрібного вам класу, якщо ви не хочете щоб метод виконувався згодом - відписувався обробник. наприклад

myButton.addEventListener (MouseEvent.CLI CK, class1Instance.takeClick)
myButton.addEventListener (MouseEvent.CLI CK, class2Instance.takeClick)
myButton.addEventListener (MouseEvent.CLI CK, class3Instance.takeClick)

ось так я підписав три методу трьох різних класів обробити мишачий клік по одній кнопці. Потім коли треба відписувався, наприклад:

myButton.removeEventListener (MouseEvent.C LICK, class1Instance.takeClick)

після чого вже class1Instance.takeClick () не викликатися.

Щось у мене ніяк не виходить. І знайти ніде не можу як лістенери вбиваються з іншого класу. Ось приклад як у мене все зроблено:

// Головний клас:
package import flash.display. *;
import flash.events. *;
import class1;

public class main extends Sprite public function main () var сlass_1: class1 = new class1 (myButton);
myButton.removeEventListener (MouseEvent.C LICK, сlass_1.takeClick); // Тут треба вбити лістенер з іншого класу
>
>
>


// Газ, що імпортується клас в якому треба зупинити натискання кнопки з головного класу:
package import flash.display. *;
import flash.events. *;

public class class1 extends Sprite public function class1 (myButton: SimpleButton) myButton.addEventListener (MouseEvent.CLI CK, takeClick);
function takeClick (e: MouseEvent): void trace ( "OK");
>
>
>
>

Ну так в вашому коді ви ж це саме та робите. Створюєте кнопку підписуєте її. а потім зовні відписувався - не зрозумію що неправильно.

Помилка
1119: Access of possibly undefined property takeClick through a reference with static type class1.

функцію takeClick винести потрібно за межі конструктора

Спасибі, так запрацювало, тільки проблему не вирішило, всі дії в класі зупинити не вдалося (Довелося йти іншим шляхом.

Раджу розібратися з хоча б початковими прикладами программіровані на АС3 книжку купите чтоли.

там виправлені опису класів і доданий метод stopNow () - я думаю вам все буде зрозуміло.

Усередині конструктора ніколи не визначає функції. Я звичайно розумію що таким чином ви достуківалісь клокальним змінним - але правильний спосіб той який в виправленому прикладі. Це основи ООП програмування клас має приватні / публічний змінні і методи.

Велике дякую! Піду переписувати сайт.
Книжку я купив, але там все надзвичайно не зрозуміло, вивчаю на прикладах, так швидше і зрозуміліше. Колись нитку доберуся і до повного прочитання товстої книги.

Схожі статті