MovieClip теряет handCursor при добавлении TextField, почему?
Я делаю приложение, в котором мне нужно создать все элементы управления по коду, чтобы не использовался flash ide. Я также создаю btn:MovieClip, который будет кнопкой, и я добавляю к ней прослушиватели событий, а также useHadCursor и ButtonMode имеют значение true. Я также добавляю статическое текстовое поле с текстом "Сохранить", чтобы это была кнопка "Сохранить".
Но когда я добавляю текстовое поле, мувиклип перестает показывать курсор в виде руки. Что я делаю неправильно?
3 ответа
Я предполагаю, что проблема вызвана текстовым полем. Сказав это, если ваш мувиклип содержит только текстовое поле, попробуйте установить mouseChildren в false. Таким образом вы можете эффективно запретить включение мыши для всех экземпляров в любом контейнере экранного объекта. Но помните, что это будет применяться ко всем дочерним элементам.
Вы можете отключить взаимодействие с мышью, установив для свойства mouseEnabled значение false для определенного текстового поля, которое вы хотите. Однако, если вы хотите отключить определенные события мыши только для коллекции объектов в контейнере, вам нужно использовать альтернативный подход. В этой ситуации вы будете использовать прослушиватель событий в целевом родительском экземпляре, прослушивающем событие для отключения, и этот слушатель остановит распространение этого события. Это предотвращает вызов слушателей, работающих для объектов в этом контейнере.
У меня были проблемы с TextFields и курсорами в прошлом. Кажется, что TextFields имеют некоторые особые характеристики, которые дают ему приоритет над событиями мыши. Это важно для того, чтобы при наведении указателя мыши на TextField вы могли получить курсор ввода текста для ввода TextFields.
Что касается решения, попробуйте установить свойства mouseEnabled и selectable на false в TextField.
theTextField.selectable = false;
должно быть достаточно. Если для mouseEnabled или mouseChildren задано значение false, в определенных ситуациях это может привести к нежелательным последствиям.
PS: если один из его родителей не имеет useHandCursor
установите в true. Тогда вам понадобится mouseChildren
на родительском значении false или mouseEnabled
установите значение false в TextField.