![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
не знаю, насколько это интересно для общественности - я и сам решил уже делать в обход - но все-таки!
сделал свою компоненту extends UIComponent, наивно рассчитывал, что она сама будет рюхать ряд заявленных событий, типа keyDown. соотв. на экземпляре компоненты делаю on(keyDown) { trace() } - фиг! хотя и setFocus делаю вроде - и focusIn приходит - вроде клавиатура должна в компоненту идти - а событие не файрит! надо как-то специально подтвердить желание ловить клавиатуру для UIComponent - или я вообще что-то не так себе представляю? |
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
addEventListener (eventName, listener)
и вообще RTFM! |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
Цитата:
так тоже не работает - естественно ![]() Цитата:
![]() |
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
Цитата:
import mx.core.UIComponent;
// нужно для всех прибамбасов
// макромедийного фрэймворка
mx.core.ext.UIComponentExtensions;
mx.core.ext.UIObjectExtensions;
var MyClass:Function = function () {super ();};
var mc:MovieClip = this.createEmptyMovieClip ('t', 1);
MyClass.prototype = new UIComponent ();
MyClass.prototype.size = function () {
super.size ();
var mc:MovieClip = this;
mc.clear ();
mc.beginFill(this.getStyle ('backgroundColor'), 50);
mc.drawRect (0, 0, this.width, this.height);
mc.endFill ();
};
mc.__proto__ = MyClass.prototype;
mc.__constructor__ = MyClass;
mc.constructor = MyClass;
MyClass.apply (mc);
var uic:UIComponent = UIComponent (mc);
uic.addEventListener ('keyDown', this);
uic.addEventListener ('focusIn', this);
uic.addEventListener ('focusOut', this);
uic.addEventListener ('resize', this);
uic.setStyle ('backgroundColor', 0x000000);
uic.setSize (300, 400);
uic.setFocus ();
function handleEvent (event:Object):Void {
trace ('[Event type="' + event.type + '", target="' + event.target + '"]');
}
Цитата:
F1 -> 'Using Components' -> 'Creating Components' - в этом разделе достаточно инфы, о том как построен их фрэймворк и как создавать свои компоненты, какие методы нужно переписывать и т.д. з.ы. Вообще любой нормальный программер, сначала читает доки, а если бы вы их и читали, то не стали бы использовать конструкции типа on ('keyDown') {} з.ы.ы. естественно можно предположить что все проблемы в вашем классе, так как у фрэймворка есть архитектура (пусть и дебильная, главное чтобы Костя нас не слышал ), и расширяя компоненты надо это учитывать.Последний раз редактировалось 7thsky™; 01.02.2007 в 09:03. |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
Цитата:
видимо, я неправильно применял addEventListener. |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
Цитата:
ну, ладно, я не гордый - буду делать через Key.onKeyDown - но это же коряво...Цитата:
на Textbox пробовал... |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
firelord, а заглянуть в класс UIComponent нельзя? И посмотреть, что тебе нахаляву подарят.
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
Цитата:
в "мануалах" (т.н. FM) упоминается, что класс UIComponent предназначен как базовый для компонент, которым требуется обработка событий клавиатуры. точка, конец абзаца а, нет! вот в другом "мануале" - "UIComponent.keyDown - Broadcast when a key is pressed". я не поленился - в качестве эксперимента - переопределил функцию keyDown - засунул в нее dispatchEvent - вдруг, думаю, так имеется в виду? нет ![]() ладно, я уже готов залезть в исходники - с толкача правда не нашел, где можно описание UIComponent найти - не подскажите? просто уже из любопытства... а то ведь и дальше буду на грабли наступать, не понимая столь своеобразной модели классов флеша... |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
firelord, по F1 тебе полный мануал откроется. Если бесполезные — купи книгу тогда.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|