![]() |
Как отключить tabEnabled сразу для всех MovieClip?
Здравствуйте! Подскажите, как на AS3, реплизовать вот такой AS2 код:
Код AS1/AS2:
|
А вы уже пробовали и у вас не получилось?
Кстати правильно будет - prototype. |
Так не будет работать, и правильно, потому что свойство это не в прототипе. Не пытайтесь переделать встроенные классы плеера, это как объять необъятное, у вас все равно не получится.
|
Ну я имел ввиду, как сделать подобное, чтобы у всех объектов сразу стал tabEnabled = false
|
На 100% не уверен, но по-моему вашу задачу решает следующий код, прописанный в корневом классе приложения:
Код AS3:
|
Вопрос был о MovieClip. Как вариант, унаследуйте его и реализуйте необходимую функциональность. Соответственно, в приложении используйте экземпляры кастомного класса.
|
2 dimarik:
Специально сейчас попробовал унаследовать главный класс приложения от MovieClip, а не от Sprite, но жёлтые рамки не появляются так же. |
koIIImarik, в Вашем примере рамок не будет вообще. Вообще. Не будет. Вы ставите запрет на их отображание начиная с root иерархии дисплейлиста приложения. Т.е. у всех наследников InteractiveObject, входящих в дисплейлист не будет ни одной рамки. Неужели этот так трудно понять? Если вопрос ставился именно о наследниках MovieClip, а вопрос именно так и ставился, то вариант через прототипы был бы подходящим, если бы "tabEnabled", как заметил wvxvw было бы прототипным.
|
Всем спасибо.
|
Цитата:
|
Дело 10? Это что еще за шифр? :)
|
Дело десятое.
|
Аааа, чёт не догадался я :)
|
Код AS3:
|
Супер, спасибо, это получается будет применено к суперклассу, т.е. extends MovieClip, а если скажем для текстовых полей? Отдельный класс сделать можно и наследоваться от текстфилда и по такой же схеме?
|
не будет оно применено к суперклассу
данная запись показывает, что используется метод определенный в суперклассе, а не переопределенный в наследнике (если он был переопределен). и в данном случае вам без разницы от какого вы дисплейОбжекта наследуетесь. вопрос в иерархии. факт в том, что если написать Код AS3:
|
Немного опередили )
Цитата:
Это будет применено ко всем DisplayObject определенной ветки дисплей-листа. super указывает на то, что будет использовано свойство или метод, объявленные выше в иерархии классов. tabEnabled, focusRect объявлены в InteractiveObject, tabChildren - в DisplayObjectContainer. Прошу заметить, что иерархия классов и иерархия дисплей-листа - это разные понятия. "В руте" - означало объект документ-класса приложения. Это Самый Верхний уровень в дереве дисплейлиста приложения. Выше только Stage (если приложение запускается из этого же swf) или Ветка Родителя (инстанс Loader'а, которым загрузили swf). tabChildren запрещает перемещение фокуса табуляцией по... детям. Запретив перечислять в Самом Главном Родителе, автоматом добиваемся запрета во всех остальных его ветках и листьях. Осталось запретить самого Родителя, поставив ему tabEnabled = false. |
2 etc:
Вы привели участок кода: Код AS3:
|
koIIImarik, ну фокус же все равно будет переходить по мувикам. Чтобы этого не происходило, отключаем ещё и tabChildren.
|
Так и думал, спасибо за ответ =)
|
спасибо! код помог!
но пришлось сократить своё флешку до одного кадра с двух и убрать "стоп" так как она дико лажала с моими кнопочками и крутящимся курсором... (прелоадер всё ровно не стал ставить... не большая получилась) |
| Часовой пояс GMT +4, время: 01:32. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.