|
|
|||||
Регистрация: Sep 2011
Адрес: СПБ
Сообщений: 10
|
Условия
Что не так в моих правилах, у меня он определяется и как первый и как второй
private function mouseMove (e:MouseEvent):void { if (((e.localX >= 0) && (e.localX < 50)) && ((e.localY >= 0) && (e.localY < 50))) { _selection.x = 0; _selection.y = 0; } if (((e.localX >= 0) && (e.localX < 50)) && ((e.localY >= 50) && (e.localY < 100))) { _selection.x = 0; _selection.y = 50; } } Последний раз редактировалось ruzi; 06.11.2011 в 15:40. |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Если должно выполняться первое условие, и при этом игнорироваться второе, то для второго условия нужно использовать оператор else if, а не if
иначе проверяются оба, и если оба true, соответственно и оба блока коды будут выполнены. п.с. Название темы не раскрывает сути вопроса. |
|
|||||
Регистрация: Sep 2011
Адрес: СПБ
Сообщений: 10
|
Суть, что они должны выполняться либо, одно либо второе.
При нахождении мыши на поле отслеживается положение курсора, и меняется положение объекта. А я кажется понял, надо проверять на каком объекте отслеживается положение мыши. Попробую может получится. Спасибо. |
|
|||||
Всё работает, только неясно, так ли вам нужно:
import flash.events.MouseEvent; stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove_handler); function onMouseMove_handler (e:MouseEvent):void { if (((e.localX >= 0) && (e.localX < 50)) && ((e.localY >= 0) && (e.localY < 50))) { // от 0:0 до 50:50 trace("first " + e.localX + ":" + e.localY); } if (((e.localX >= 0) && (e.localX < 50)) && ((e.localY >= 50) && (e.localY < 100))) { // от 0:50 до 50:100 trace("second " + e.localX + ":" + e.localY); } } Цитата:
Последний раз редактировалось strangedk; 06.11.2011 в 15:56. Причина: ошибся |
|
|||||
Они оба не могут быть TRUE в данном контексте... Условие можно немного упростить, слишком много скобок, они тут лишние. Ну и само собой да, лучше использовать else if, например так:
А вот почему срабатывают оба условия - не понятно, по идее не должны - одно из них все-равно будет ложным. Последний раз редактировалось Ookami; 06.11.2011 в 15:57. |
|
|||||
Я предлагаю сделать что то такое вместо громоздких if -else:
Последний раз редактировалось Newred; 06.11.2011 в 16:19. |
|
|||||
Регистрация: Sep 2011
Адрес: СПБ
Сообщений: 10
|
Просто я создаю поле по которому передвигая мышь двигался бы квадрат, но проблема когда я передвигаю мышь, квадрат переходит но новое положение и положение курсора отслеживается уже на квадрате.
|
|
|||||
Регистрация: Sep 2011
Адрес: СПБ
Сообщений: 10
|
Так и сделал
Добавлено через 11 минут У меня получилось, а на сколько обоснованно и какие проблемы могут возникнуть при том что я использую mouseX и mouseY private function mouseMove (e:MouseEvent):void { if (((mouseX >= 0) && (mouseX < 50)) && ((mouseY >= 0) && (mouseY < 50))) { _selection.x = 0; _selection.y = 0; } if (((mouseX >= 0) && (mouseX < 50)) && ((mouseY >= 50) && (mouseY < 100))) { _selection.x = 0; _selection.y = 50; } } А теперь подскажите пожалуйста, а как лучше всего проверку выполнять, если поле 500 на 500 px. Последний раз редактировалось ruzi; 06.11.2011 в 17:11. |
Часовой пояс GMT +4, время: 19:25. |
|
« Предыдущая тема | Следующая тема » |
|
|