PDA

Просмотр полной версии : ни как не могу отловить нажатие клавиши через addEventListener...


_bioscorpio_
22.09.2007, 16:51
Всем привет!

Хочу отловить нажитие клавиш и чтоб оно отображалось в trace. В хелпе вичитал вот такую штуку
var my_ti:mx.controls.TextInput;
// Create listener object.
var tiListener:Object = new Object();
tiListener.handleEvent = function(evt_obj:Object) {
if (evt_obj.type == "Enter") {
if (my_ti.length<8) {
trace("You must enter at least 8 characters");
} else {
trace("Thanks");
}
}
};
// Add listener.
my_ti.addEventListener("Enter", tiListener);

но она работает по нажатию клавиши Enter тока..., а как сделать так чтоб она отлаливала нажитие клавиш...

var tiListener:Object = new Object();
tiListener.handleEvent = function(evt_obj:Object) {
if (evt_obj.type == что сюда нужно вписать?!) {
trace(my_ti)
}
};
// Add listener.
my_ti.addEventListener(что сюда нужно вписать?!, tiListener);

divinus
22.09.2007, 16:57
попробуй вот так:

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
trace("DOWN -> Code: "+Key.getCode()+"\tASCII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii()));
};
keyListener.onKeyUp = function() {
trace("UP -> Code: "+Key.getCode()+"\tASCII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii()));
};
Key.addListener(keyListener);

etc
22.09.2007, 17:24
http://livedocs.adobe.com/flash/9.0/main/00003532.html

_bioscorpio_
22.09.2007, 20:09
2 divinus, да работает. спасибо. Ток я дундук и описал не то что хотел узнать ))) как это поймать в инпут текст? наверно проще объяснить чего я хочу в интоге.

есть флешка, в ней инпут текст(asd) другой динамик(dsa). так вот, в asd я ввожу букву, "А" и хочу чтоб она отображалась в dsa тексте "А"... и так дальше, т.е. в одной воожу, в другой появляется вот =) но при этом и в asd и в dsa текст одинаковый =) блин )))))) запутался... надеюсь хоть как-то бъяснил )))

2 __ect, у меня не открывает страницу... =) может просто скинушь от туда информацию?

etc
22.09.2007, 20:15
В хелпе эта информация есть.

_bioscorpio_
22.09.2007, 20:24
var tiListener:Object = new Object();
tiListener.onKeyDown = function() {
trace(my_ti);
};
// Add listener.
Key.addListener(tiListener);

2 divinus, спасибо! все прекрасно работает, туплю! =)))

etc
22.09.2007, 23:30
Все-таки упорно у нас нежелают читать хелп.

Wolsh
23.09.2007, 00:31
Да уж, следить за клавиатурой, чтобы узнать, какой текст ввели в инпут...
Нафига же тогда инпут, для красоты, чтоли...
asd.onChanged = function(){
dsa.text = asd.text
}
Фантастика, правда?

etc
23.09.2007, 11:47
Открою секрет из хелпа: помимо события enter есть ещё change.

Mr. Fixit
23.09.2007, 18:33
лол...
2 афтор: поиском пользоваться не пробовали?
недавно подобная тема открывалась..

divinus
24.09.2007, 11:32
__etc, у нас ведь документацию только "ламеры" читают ;)

Sanitarium_MX
25.12.2008, 15:28
Добрый день, я прочитал пару тем, пользовался поиском, но не наешл то что нужно... в принципе, что то с кодом
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
trace("DOWN -> Code: "+Key.getCode()+"\tASCII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii()));
};
keyListener.onKeyUp = function() {
trace("UP -> Code: "+Key.getCode()+"\tASCII: "+Key.getAscii()+"\tKey: "+chr(Key.getAscii()));
};
Key.addListener(keyListener);

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

dimarik
25.12.2008, 18:08
var textField :TextField;
var sound :Sound = new Sound();
// where "typewritter" is library's linkage name of sound
sound.attachSound("typewritter");

textField.onChanged = function(value:TextField):Void {
sound.stop();
sound.start();
}

Sanitarium_MX
25.12.2008, 18:43
Продолжаем допрос =)

После редактирования у меня получился такой код:
var textField :TextField;
var sound :Sound = new Sound();
// where "typewritter" is library's linkage name of sound
sound.attachSound("http://мой сайт/папка_со_звуками/звук.mp3");

textField.onChanged = function(value : TextField):Void {
sound.stop();
sound.start();
}
Далее, создал для тестирования html страничку с полем ввода:
<body>
<input type="text" name="textfield" id="textfield" />
</body>
Вставил в страничку получившийся файл со скриптом:
<body>
<input type="text" name="textfield" id="textfield" />
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="47" height="23">
<param name="movie" value="file:///C|/Documents and Settings/Роман.AMD/Рабочий стол/1.swf" />
<param name="quality" value="high" />
<embed src="file:///C|/Documents and Settings/Роман.AMD/Рабочий стол/1.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="47" height="23"></embed>
</object>
</body>

И... и ничего не сработало ((( Где я ошибся?
textfield в скрипте и в html страничке совпадают...
Не понимаю я...

народ, ответьте пожалуйста что же делать мне!!! жду, жду.... а никто не отвечает ((

Wolsh
29.12.2008, 00:28
а никто не отвечает ((Видите ли, Ваш вопрос не имеет никакого отношения к ловле нажатий клавиш во флэше. Соответственно люди, зашедшие сюда "по теме", в недоумении уходят. Вам стоило создать новую тему.
Скажите, а какую связь Вы вообразили между текстфилдом во флэшке и полем ввода хтмл-формы на странице? Что Вы подразумеваете под "совпадают"? И какова всё-же конечная цель этих экспериментов - чтобы при вводе символа в поле хтмл-формы на хтмл-странице пикала флэшка? Вы знаете, что такое "фокус"? Почему, когда Вы пишите другу сообщение в аське, у Вас этот же текст не печатается в открытом Ворде? Невозможно, чтобы флэшка ловила нажатия ВМЕСТЕ с полем ввода хтмл-формы. Уж или одно, или другое. Но я думаю, с помощью джаваскрипта можно ловить изменения текста в хтмл-поле и вызывать функцию во флэшке, проигрывающую звук.

Zik.
29.12.2008, 00:38
В нашем мире люди не хотят сами вникать и понимать, им надо, чтобы другие разжевали....

Sanitarium_MX
29.12.2008, 01:05
Скажите, а какую связь Вы вообразили между текстфилдом во флэшке и полем ввода хтмл-формы на странице? Что Вы подразумеваете под "совпадают"?
Совпадают - значит что имя переменной во флешке совпадает с именем поля в хтмл странице, я же не знал что тот код который мне дали не тот, который мне нужен.

конечная цель этих экспериментов - чтобы при вводе символа в поле хтмл-формы на хтмл-странице пикала флэшка?
именно так.

Вы знаете, что такое "фокус"?
В actionscript'е не знаю, разъясните, если не сложно

Почему, когда Вы пишите другу сообщение в аське, у Вас этот же текст не печатается в открытом Ворде?

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

Невозможно, чтобы флэшка ловила нажатия ВМЕСТЕ с полем ввода хтмл-формы. Уж или одно, или другое. Но я думаю, с помощью джаваскрипта можно ловить изменения текста в хтмл-поле и вызывать функцию во флэшке, проигрывающую звук. Вот то что мне нужно было знать, спасибо, буду искать в яве...

Добавлено через 3 минуты
В нашем мире люди не хотят сами вникать и понимать, им надо, чтобы другие разжевали....
Опираясь на суть вашего ответа, нужно закрыть все форумы, потому что они в принципе не нужны т.к. никто тебе все равно "разжевывать" не станет то что ты не понимаешь. Давайте перестанем делиться знаниями, и будет только понтовать и кидаться своими рангами вместо того чтобы просто объяснить.