![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2010
Сообщений: 16
|
Здравствуйте. У меня вопрос. Почему когда я создаю условие и прописываю события в
нем, они работают и после того как условие не выполняется. Пример: я создал CheckBox присвоил ему слушатель событий по клику мишки. в функции слушателя указал условие, если CheckBox выбран то выполняем следующие события, дальше пишу обратное условие, если CheckBox не выбран то выполняем следующие события. Тестирую и вижу что те события которые выполняются при выбранном CheckBox работают постоянно, стоит лишь выбрать CheckBox один раз. Возможно есть метод который останавливает эти события? Хотя странно как-то, ведь они прописаны в условии и должны останавливаться как только условие не выполняется. Или я не прав? Объясните пожалуйста. |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 16
|
var ChBo:CheckBox = new CheckBox(); addChild(ChBo); ChBo.addEventListener(MouseEvent.CLICK, onClickCheck); function onClickCheck(e:MouseEvent):void { if (ChBo.selected == false) { var q:Number = 0; RbGr.addEventListener(Event.CHANGE, changeHandler); function changeHandler(e:Event):void { aCb.removeAll(); q=Number(RbGr.selectedData); trace(q); for (var i:int=1; i <= q; i++) { aCb.addItemAt({label:"Позиция" + i, data:"position" + i}, aCb.length); } } } else if (ChBo.selected == true) { var date:Date = new Date(); trace(date.getHours()+":"+date.getMinutes()); } } |
|
|||||
|
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
При беглом осмотре ничего подозрительного не заметил... А это у вас, случаем, не в ENTER_FRAME стоит?
И как совет - не используйте анонимных функций (что-то в последнее время прямо наметился какой-то нездоровый тренд на них...) да и в можно использовать просто if (ChBo.selected) (то же самое, что и if (ChBo.selected == true) ) |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
при беглом осмотре увидел вложенные функции, показалось подозрительным - дальше не стал смотреть.
__________________
Отряд Котовскага |
|
|||||
|
Lorem ipsum
|
в блоке else if надо, соответственно, сделать
ну и, разумеется, вынести этот самый changeHandler() за пределы onClickCheck(), как было сказано ранее. и вообще хорошо бы привести весь код в порядок.
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 16
|
Всем спасибо. понял свой косяк. По причине отсутствия опыта мне казалось что функции слушателя событий должна находиться там же где и слушатель, оказывается чтобы все верно работало все функции надо выносить а слушатель событий на нее будет ссылаться. Буду знать. Теперь все работает.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|