![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 43
|
Здраствуйте.
Например у нас есть mc.addEventListener(MouseEvent.CLICK, this.onClick) mc.addEventListener(MouseEvent.CLICK, this.onClick2) возможноли из onClick функции узнать что есть ещё и onClick2? и возможноли вообще получить список функций по Евенту на объекте? Нужно для того что бы не запоминать названия всех повешаных функций и просто удалять все повешаные по евенту на объект функции ![]() Добавлено через 1 минуту или есть функция чтобы стёрла всё что навешано на Евент у объекта? а стандартные public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void подразумевает обязательное введение названия функции |
|
|||||
|
Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
|
Самый простой способ все повешанные подписки после осуществления события чистишь вызовом метода содержащим их удаление. removeEventListener удалит подписку если она есть и не будет ругаться если ее нет.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 43
|
тут дело всё в том что реализую хукБуттон. поетому или писать чтобы функции ети все запоминались или ешё много другово, прощеб было стиреть все..
какбы есть класс который я выставил всем кнопкам package org.softservice.web.classes { import fl.controls.Button; import flash.events.*; import Global; /** * ... * @author DefaultUser (Tools -> Custom Arguments...) */ public class HookButton extends Button { public var onClickHook:String = ""; public var parametres:Object = new Object; public var enableFunction:Boolean = true; public var enable:Boolean = true; public function HookButton():void { addEventListener(MouseEvent.CLICK, this.onClick) } public function onClick(e:MouseEvent) { if (this.onClickHook != "" ) { this.enable = Global.sChatHook[onClickHook](this.parametres) trace("enableFunction " + this.enableFunction) if (!this.enable) { this.removeEventListener(MouseEvent.CLICK, this.onClick, true) trace("BOTH ") } } } } } конечно я знаю как реализовать через ифы.. дописав 1 2 строчки в каждую функцию, но нельзыли прям отсюда чтонибудь придумать? Последний раз редактировалось jp_job; 15.01.2009 в 11:56. |
|
|||||
|
Ну как вариант - переопределить в HookButton метод addEventListener и в переопределенном методе запоминать все подписи на событие. И ввести метод для удаления всех запомненных подписей. Прийдется один раз в классе HookButton дописать несколько строчек и все.
|
|
|||||
|
Регистрация: Oct 2006
Сообщений: 43
|
решил неким другим способом без запоминания функций.
Просто блокирую дальнейшее распространение Евента и всё) Еле нашёл это) |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:03. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|