PDA

Просмотр полной версии : Перестает работать двух-уровневое меню с hit test, после скролла.


storm_
22.09.2008, 20:10
Ситуация такая. Есть презентация, в ней скролл работает по принципу того, что изменяется текущий «_y» главного мувика. Все работает прекрасно, только перестает корректно работать двух-уровневое меню (наводишь курсор на один мувик — появляется еще ряд мувиков, из них выбираешь любой и жмешь…) в коде этого меню использовал hitTest.
Когда эта менюшка стоит на месте — все в порядке, все работает. Стоит только ее увести скроллом за пределы видимости — начинают не срабатывать кнопки, или путаются их значения (жмешь на первую, а срабатывает, как будто третья )
Как добиться полноценной работоспособности менюшки, после скрытия и появления ее из-за пределов видимости?
Спасайте…

NoCD
22.09.2008, 20:32
У тебя система координат нарушается
у тебя скорее всего так Menu(которое можно скролить)=>подменю. Вот это подменю у тебя сбивается. Протрейсь их координаты

AlexCooper
22.09.2008, 20:34
:wacko:
скинь fla поможу чем смогу.

storm_
22.09.2008, 20:53
NoCD, спасибо за наводку! Да, координаты подменю сбиваются. Это факт. А как это предотвратить?

AlexCooper — Спасибо. Только там огромный исходник и куча левых файлов.
Сейчас постараюсь облегчить до минимума. И выложу ссылку на файл.

Psycho Tiger
22.09.2008, 21:37
Если менюшка уж не очень экзотической формы (проще говоря - прямоугольник), то можно обойтись без хиттеста, пользуясь getBounds() - у него есть параметр coordinateSpace (или как то так) - суть в том, что если указать _root - автоматически все координаты "перефразируются" по _root`у, и можно написать свой простенький хиттест, учитывая координаты мышки по _root`у (это тоже мы можем сделать).

storm_
22.09.2008, 22:00
Psycho Tiger, спасибо за идею.
Сейчас поразмыслил и вот к чему пришел. Сбиваются координаты не самих мувиков — они остаются на местах. А сбиваются их значения, вернее instance name. Потому что если бы сбивались координаты мувиков подменю, то они соответственно и отображались бы не правильно, а отображаются они, до и после скролла — правильно.
Что за беда… ?

storm_
22.09.2008, 23:17
Вот упрощенный исходник:
Пока скролл не трогаешь — всё гуд, как только вверх подгонишь — лажа.
Гляньте, кому не лень. Спасайте. :(

storm_
23.09.2008, 00:25
Спасибо всем за ответы. Я разобрался.
При хит тесте нужно было указывать _root перед _ymouse, _xmouse.
Вопрос исчерпан.