Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.02.2007, 00:34
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 1  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
По умолчанию UIComponent не ловит keyDown?

не знаю, насколько это интересно для общественности - я и сам решил уже делать в обход - но все-таки!

сделал свою компоненту extends UIComponent, наивно рассчитывал, что она сама будет рюхать ряд заявленных событий, типа keyDown.

соотв. на экземпляре компоненты делаю on(keyDown) { trace() } - фиг! хотя и setFocus делаю вроде - и focusIn приходит - вроде клавиатура должна в компоненту идти - а событие не файрит!

надо как-то специально подтвердить желание ловить клавиатуру для UIComponent - или я вообще что-то не так себе представляю?

Старый 01.02.2007, 00:43
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 2  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
addEventListener (eventName, listener)

и вообще RTFM!

Старый 01.02.2007, 02:15
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 3  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
Цитата:
Сообщение от 7thsky™
addEventListener (eventName, listener)
обидно, когда тебя совсем за идиота принимают так тоже не работает - естественно
Цитата:
Сообщение от 7thsky™
и вообще RTFM!
я бы с радостью - да где эти FM взять? или вот эта груда бесполезных PDF у флеша называется мануалами?

Старый 01.02.2007, 08:57
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 4  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
Цитата:
Сообщение от firelord
обидно, когда тебя совсем за идиота принимают так тоже не работает - естественно
Что самое интересное - работает. рабочий пример (было впадлу писать в отдельном файле свой класс, так что сделал класс на ас1, но сути не меняет), открываете пустой фла, копируете код и запускаете.

Код:
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 + '"]');
}
Цитата:
я бы с радостью - да где эти FM взять? или вот эта груда бесполезных PDF у флеша называется мануалами?
Эти FM, очень просто найти -
F1 -> 'Using Components' -> 'Creating Components' - в этом разделе достаточно инфы, о том как построен их фрэймворк и как создавать свои компоненты, какие методы нужно переписывать и т.д.

з.ы. Вообще любой нормальный программер, сначала читает доки, а если бы вы их и читали, то не стали бы использовать конструкции типа on ('keyDown') {}

з.ы.ы. естественно можно предположить что все проблемы в вашем классе, так как у фрэймворка есть архитектура (пусть и дебильная, главное чтобы Костя нас не слышал ), и расширяя компоненты надо это учитывать.


Последний раз редактировалось 7thsky™; 01.02.2007 в 09:03.
Старый 01.02.2007, 15:32
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 5  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
Цитата:
Сообщение от 7thsky™
Что самое интересное - работает. рабочий пример (было впадлу писать в отдельном файле свой класс, так что сделал класс на ас1, но сути не меняет), открываете пустой фла, копируете код и запускаете.
вот за пример спасибо! посижу, разберусь, в каком месте у меня руки кривые видимо, я неправильно применял addEventListener.

Старый 01.02.2007, 00:57
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
нормальные герои всегда идут в обход..
может она и "будет рюхать ряд заявленных событий", но не таким же образом..
или у тебя on(keyDown) { trace() } на родных компонентах работает?

Старый 01.02.2007, 02:17
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 7  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
Цитата:
Сообщение от silin
нормальные герои всегда идут в обход..
может она и "будет рюхать ряд заявленных событий", но не таким же образом..
я уже выяснил, что не таким - вопрос остался - каким ну, ладно, я не гордый - буду делать через Key.onKeyDown - но это же коряво...

Цитата:
Сообщение от silin
или у тебя on(keyDown) { trace() } на родных компонентах работает?
да на Textbox пробовал...

Старый 01.02.2007, 01:13
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
firelord, а заглянуть в класс UIComponent нельзя? И посмотреть, что тебе нахаляву подарят.

Старый 01.02.2007, 02:27
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 9  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
Цитата:
Сообщение от __etc
firelord, а заглянуть в класс UIComponent нельзя? И посмотреть, что тебе нахаляву подарят.
вообще, строго говоря, лазить в исходники базовых компонент - это занятие для людей, не обделенных свободным временем. у класса существует ИНТЕРФЕЙС, интерфейс должен быть ОПИСАН.
в "мануалах" (т.н. FM) упоминается, что класс UIComponent предназначен как базовый для компонент, которым требуется обработка событий клавиатуры. точка, конец абзаца а, нет! вот в другом "мануале" - "UIComponent.keyDown - Broadcast when a key is pressed". я не поленился - в качестве эксперимента - переопределил функцию keyDown - засунул в нее dispatchEvent - вдруг, думаю, так имеется в виду? нет
ладно, я уже готов залезть в исходники - с толкача правда не нашел, где можно описание UIComponent найти - не подскажите? просто уже из любопытства... а то ведь и дальше буду на грабли наступать, не понимая столь своеобразной модели классов флеша...

Старый 01.02.2007, 02:27
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
firelord, по F1 тебе полный мануал откроется. Если бесполезные — купи книгу тогда.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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