![]() |
UIComponent не ловит keyDown?
не знаю, насколько это интересно для общественности - я и сам решил уже делать в обход - но все-таки!
сделал свою компоненту extends UIComponent, наивно рассчитывал, что она сама будет рюхать ряд заявленных событий, типа keyDown. соотв. на экземпляре компоненты делаю on(keyDown) { trace() } - фиг! хотя и setFocus делаю вроде - и focusIn приходит - вроде клавиатура должна в компоненту идти - а событие не файрит! надо как-то специально подтвердить желание ловить клавиатуру для UIComponent - или я вообще что-то не так себе представляю? |
addEventListener (eventName, listener)
и вообще RTFM! |
нормальные герои всегда идут в обход..
может она и "будет рюхать ряд заявленных событий", но не таким же образом.. или у тебя on(keyDown) { trace() } на родных компонентах работает? |
firelord, а заглянуть в класс UIComponent нельзя? И посмотреть, что тебе нахаляву подарят.
|
Цитата:
Цитата:
|
Цитата:
Цитата:
|
firelord, по F1 тебе полный мануал откроется. Если бесполезные — купи книгу тогда.
|
Цитата:
в "мануалах" (т.н. FM) упоминается, что класс UIComponent предназначен как базовый для компонент, которым требуется обработка событий клавиатуры. точка, конец абзаца ;) а, нет! вот в другом "мануале" - "UIComponent.keyDown - Broadcast when a key is pressed". я не поленился - в качестве эксперимента - переопределил функцию keyDown - засунул в нее dispatchEvent - вдруг, думаю, так имеется в виду? нет ;) ладно, я уже готов залезть в исходники - с толкача правда не нашел, где можно описание UIComponent найти - не подскажите? просто уже из любопытства... а то ведь и дальше буду на грабли наступать, не понимая столь своеобразной модели классов флеша... |
Эти компоненты изнутри вообще жуть и то, что они не работают, ничего удивительного :)
|
Цитата:
видимо моя ошибка была в самом начале - что я решил вообще делать компоненты - флеш, видать, исповедует собственную идеологию (в этом уже убедился на runtime sharing)... придется забыть все, о чем знал - и учиться программить "по-флешовски" ;) |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Код:
import mx.core.UIComponent;Цитата:
F1 -> 'Using Components' -> 'Creating Components' - в этом разделе достаточно инфы, о том как построен их фрэймворк и как создавать свои компоненты, какие методы нужно переписывать и т.д. з.ы. Вообще любой нормальный программер, сначала читает доки, а если бы вы их и читали, то не стали бы использовать конструкции типа on ('keyDown') {} з.ы.ы. естественно можно предположить что все проблемы в вашем классе, так как у фрэймворка есть архитектура (пусть и дебильная, главное чтобы Костя нас не слышал :) ), и расширяя компоненты надо это учитывать. |
Цитата:
Цитата:
|
Цитата:
|
я все-таки осмелюсь задать еще вопрос :) вот в Вашем, уважаемый 7thsky™, примере у меня работало - а в моей компоненте не удается повесить внешний листенер ;)
Код:
class clScrollArea extends mx.core.UIComponent {не подскажите еще разочек (надеюсь, последний) - в каком месте ДНК у меня ошибка? ;) |
да, и раз уж я все равно спросил - самый общий вопрос: что нужно, чтобы еще и мышку компонентой ловить?
|
Цитата:
F1 > Using Components > Creating Components > Creating a component movie clip Код:
class clScrollArea extends mx.core.UIComponent {Опять таки отсылаю вас на RTFM, так как если бы вы читали то бы прочитали что все компоненты по архитектуре макромедийных компонент - визуальные, то есть в конечном счете наследуются от MovieClip и что единственный способ создать визуальный объект воспользовать фабричным методом класса MovieClip или createClassObject (расширенние компонент). |
ну, на самом-то деле я его создаю в редакторе - как обычную компоненту - тащу на stage. т.е. я полагаю - механизм создания в данном случае не важен - важнее, что keyDown в этом случае не отрабатывается
|
а вообще где можно иерархию классов флеша посмотреть с описаниями интерфейсов классов? не так, как в "документации" - а нормальную иерархию - что от чего наследуется, какие свойства, какие методы. или это вообще излишний вопрос? поиск пока ничего не дал :(
|
мне казалось, что все проще, теперь вот в сомнениях..
хотя работает: Код:
import mx.core.UIComponent;Код:
class clScrollArea extends mx.core.UIComponent { |
ладно, буду еще много читать и разбираться... спасибо за помощь!
|
тогда не работающий пример в студии, то что вы показали не может работать, а гадать что там у вас действительно не хочется
|
Silin - этож нето, если создавать через new, то нафиг наследовать от UIComponent - для понтов?
|
Вложений: 1
Вот вообще пример как компоненты работают простой
|
дада, new здесь не при делах..тока чтоб посмотреть что наследует..
но если мувик с этим классом положить на сцену, он что же не унаследует от от UIComponent ?, вроде наследует.. |
если положить, и если символ в библиотеке прописан данный класс, никто и не спорит :) но просто тому примеру что тут был выложен я был не уверен что именно так и обстоит дело, поэтому и попросил исходник в студию :)
|
| Часовой пояс GMT +4, время: 23:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.