Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как отключить tabEnabled сразу для всех MovieClip? (http://www.flasher.ru/forum/showthread.php?t=145938)

джонатан 25.10.2010 18:12

Дело 10? Это что еще за шифр? :)

Psycho Tiger 25.10.2010 18:17

Дело десятое.

джонатан 25.10.2010 19:08

Аааа, чёт не догадался я :)

etc 25.10.2010 19:24

Код AS3:

                        super.tabEnabled = false;
                        super.tabChildren = false;
                        super.focusRect = false;
                        super.stage.stageFocusRect = false;

В руте.

джонатан 28.10.2010 16:19

Супер, спасибо, это получается будет применено к суперклассу, т.е. extends MovieClip, а если скажем для текстовых полей? Отдельный класс сделать можно и наследоваться от текстфилда и по такой же схеме?

cleptoman 28.10.2010 16:33

не будет оно применено к суперклассу

данная запись показывает, что используется метод определенный в суперклассе, а не переопределенный в наследнике (если он был переопределен).

и в данном случае вам без разницы от какого вы дисплейОбжекта наследуетесь. вопрос в иерархии. факт в том, что если написать
Код AS3:

 super.tabChildren = false;

в рутовом классе, то все это будет применяться ко всем детям и детям детей и....

dimarik 28.10.2010 16:45

Немного опередили )

Цитата:

Сообщение от джонатан (Сообщение 946040)
Супер, спасибо, это получается будет применено к суперклассу, т.е. extends MovieClip

.

Это будет применено ко всем DisplayObject определенной ветки дисплей-листа.

super указывает на то, что будет использовано свойство или метод, объявленные выше в иерархии классов. tabEnabled, focusRect объявлены в InteractiveObject, tabChildren - в DisplayObjectContainer.

Прошу заметить, что иерархия классов и иерархия дисплей-листа - это разные понятия.

"В руте" - означало объект документ-класса приложения. Это Самый Верхний уровень в дереве дисплейлиста приложения. Выше только Stage (если приложение запускается из этого же swf) или Ветка Родителя (инстанс Loader'а, которым загрузили swf).

tabChildren запрещает перемещение фокуса табуляцией по... детям. Запретив перечислять в Самом Главном Родителе, автоматом добиваемся запрета во всех остальных его ветках и листьях. Осталось запретить самого Родителя, поставив ему tabEnabled = false.

koIIImarik 01.11.2010 01:43

2 etc:
Вы привели участок кода:
Код AS3:

super.stage.stageFocusRect = false;

Я попробовал в своей тестовой флешке написать это и удалить tabEnabled/tabChildren, результатом оказалось то, что рамка табуляции так же пропала. Подскажите, для чего нужно прописывать tabEnabled/tabChildren если и stageFocusRect достаточно, чтобы убрать рамку выделения?

etc 01.11.2010 11:53

koIIImarik, ну фокус же все равно будет переходить по мувикам. Чтобы этого не происходило, отключаем ещё и tabChildren.

koIIImarik 01.11.2010 22:05

Так и думал, спасибо за ответ =)


Часовой пояс GMT +4, время: 01:38.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.