Просмотр полной версии : Переопределить хандлер компонента
undefined
19.06.2008, 12:09
Заметил, что стандартные флэшовые компоненты перестают работать если переопределять их хендлеры
Например
import mx.controls.Button;
var btn:Button;
var handler=btn.onRollOver;
btn.onRollOver=function() {
trace("rollover");
handler();
}
Убивает реакцию кнопки на rollOver. Кто-нибудь знает почему так, и как еще можно получить события типа onRollOver, onRollOut, onReleaseOutside для стандартных компонентов?
alexcon314
19.06.2008, 12:55
А что вы хотели? И к чему вообще эти телодвижения?
Сравните:
import mx.controls.Button;
var btn:Button = createClassObject(Button, 'btn', 1);
btn.onRollOver = function() {
trace("rollover");
//handler();
};
var handler = btn.onRollOver;
handler();
undefined
19.06.2008, 19:06
Пишу класс для всплывающих подсказок. Подсказка вешается на хэндлер мувиклипа onRollOver, при этом старый хэндер мувика сохраняется и вызывается в новом. Для стандартных компонентов такая схема почему-то не катит.
Еще одна странность - заметил что если на сцене лежит флэшевый ComboBox и рядом мувик, то у мувика onPress/onRelease начинает как-то косячно работать: если 2 раза клацнуть не двигая мышь, то первый раз хэндлер сработает, а второй - нет, неужто адоб набажил?
На самом деле это все очень замороченно и не оченеь нужно. если вы не хотите определением хинта (всплывающей подсказки) для мувклипа портить нормальный вызов onRollOver используйте onMouseMove и hitTest.
Замечательный класс Hint усть у silin'а - легко модифицировать под любой дизайн - весит мало, и вообще ему за него огромное респектище !!!
Более позднее дополнение:
Зашел, сейчас на силинский сайт.. исходника который пользую уже года два нет - есть другой (для ас2 и ас3) по коду смотрю что-то совершенно новенькое, только не понятно как этот класс использовать.
В первом варианте при инициализации класса хинт добавлялся метод addHint ко всем кнопкам, мувикам и текстФилдам (через прототипы), а сейчас?
Товарищ Silin ответьте пожалуйста.
uncle_sam
09.07.2008, 18:19
котяра, спасибо за onMousemove + hittest() , действительно проще! +1 вам ;)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.