Вверх ↑
Этот топик читают: Гость
Ответов: 523
Рейтинг: 167
#1: 2012-03-09 23:50:47 ЛС | профиль | цитата
Стал перекомпилировать старые програмки, наработки под новую сборку. И столкнулся с тем , что события onMouseEnter - onMouseLeave стали не так работать как раньше (год назад). Соответсвенно и програмки в которых были задествованы эти точки работают не правильно. Еть ли кокая либо возможность исправить (при помощи костылей)или еще как.
Вот пример - onmouseenter.sha
Сборка Hiasm от CriDos
карма: 4

0
файлы: 1onmouseenter.sha [2.9KB] [327]
Разработчик
Ответов: 26303
Рейтинг: 2146
#2: 2012-03-10 00:02:55 ЛС | профиль | цитата
tig-rrr писал(а):
Еть ли кокая либо возможность исправить

Они стали работать так, как и должны работать. Правки вносил лично Dilma на основании обнаруженных пользователями багов
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#3: 2012-03-10 00:05:07 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2025-01-09 05:42:29
карма: 0

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#4: 2012-03-10 00:09:05 ЛС | профиль | цитата
Если детально рассмотреть твой пример, то событие выхода происходит после всех событий входа, вот потому и не работает твой пример.
А вообще, как ты хочешь, чтобы они работали
карма: 22

0
Ответов: 3889
Рейтинг: 362
#5: 2012-03-10 00:17:35 ЛС | профиль | цитата
nesco писал(а):
А вообще, как ты хочешь, чтобы они работали

Видимо, он хотел, чтобы панель и элементы на ней вели себя как одно целое, но не учёл, что переход курсора на дочерний элемент порождает событие ухода курсора с родительского, соответственно, какое сообщение в системе последним в очереди пришло, такой статус у светодиода и устанавливается - близкий к случайному.
------------ Дoбавленo в 00.17:
tig-rrr, ещё такой простой трюк:

Add(ChildPanel,5559988,133,77)
{
link(onEvent1,9749992:doOn,[(200,83)(200,97)])
link(onEvent2,9749992:doOff,[])
}
BEGIN_SDK
Add(EditMulti,8980247,21,21)
{
EventCount=4
Width=167
Height=102
}
Add(Panel,2799172,63,28)
{
Left=210
Top=65
Width=59
Point(onMouseEnter)
Point(onMouseLeave)
link(onMouseEnter,8980247:onEvent1,[(124,41)(124,27)])
link(onMouseLeave,8980247:onEvent2,[(141,48)(141,34)])
}
Add(Label,8410864,63,70)
{
Left=5
Top=15
Width=45
Height=20
Color=65535
Enabled=1
Point(onMouseEnter)
Point(onMouseLeave)
}
END_SDK
Add(LED,9749992,217,77)
{
Left=285
Top=75
}


карма: 1

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#6: 2012-03-10 00:21:20 ЛС | профиль | цитата
1nd1g0 писал(а):
какое сообщение в системе последним в очереди пришло, такой статус у светодиода и устанавливается

Ну, не совсем случайный. Надо детальнее посмотреть -- в одной ли очереди они работают
карма: 22

0
Ответов: 523
Рейтинг: 167
#7: 2012-03-10 00:28:04 ЛС | профиль | цитата
1nd1g0 писал(а):
Видимо, он хотел, чтобы панель и элементы на ней вели себя как одно целое,

Именно так.
Вот кусочек кода в котором была использована эта система.при наведении мыши цифры увеличивались, а сейчас пригают. раньше работало .Пример0001.sha
1nd1g0 писал(а):
ещё такой простой трюк:

как вариант..
карма: 4

0
файлы: 1Пример0001.sha [2.8KB] [403]
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)