Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как сделать виртуальную клавиатуру? (http://www.flasher.ru/forum/showthread.php?t=125838)

kkin 03.06.2009 13:44

как сделать виртуальную клавиатуру?
 
У меня есть мувик на мувике расположены 3 кнопки (A,B,C). Теперь когда пользователь нажимает на одну из них допустим на В то и в текстовом окне отображается буква В.
Думая над этой задачей сделал так только для одной кнопки
Код AS3:

    a.addEventListener(MouseEvent.CLICK, keyDownHandler);
 
function keyDownHandler(event:MouseEvent):void {
        txt.text =a.name;
}

При таком подходе пришлось переименовать каждую кнопку на название которое должно выводиться. А если прейдется вывести "Привет Вася". Данный метод не подходит. Вопрос как сделать чтобы при нажатии на кнопку передовался бы и параметр который необходимо вывести?
heLP

dimarik 03.06.2009 13:52

В порядке бреда. Привяжите индекс глубины мувика к индексу буквы String.fromCharCode(depth);
Тогда,
Код AS3:

a.addEventListener(MouseEvent.CLICK, this.keyDownHandler);
 
function keyDownHandler(event:MouseEvent):void {
        var depth:uint = (event.currentTarget.parent as DisplayObjectContainer).getChildIndex(event.currentTarget);
        var k:uint = 0; // Поправочный коэффициент. Определите сами.
        this.txt.text = String.fromCharCode( depth + k );
}


Gal4enochek 03.06.2009 14:11

Может расширить ваши кнопки каким-то классом, который будет иметь только одно дополнительно поле
Код AS3:

public var caption :String

. При создании кнопки выставляете его, в обработчике нажатия берете его как
Код:

event.target.caption
.
В общем как-то так

kkin 03.06.2009 14:59

Щас буду что нибудь пробовать
Как все хорошо было в AS 2
Код AS1/AS2:

on (press) {
        txt=txt+'A';
        }

и все работало

Добавлено через 1 минуту
Я еще рассматриваю как самый крайний вариант назначить каждой кнопке свою функцию. но это тоже не есть good

Добавлено через 20 минут
dimarik Пробую откомпилить твой код вот что выдает
Код AS3:

1118: Implicit coercion of a value with static type Object to a possibly unrelated type flash.display:DisplayObject.


BlooDHounD 03.06.2009 15:24

kkin, это было в АС1. но никак не в АС2.

kkin 03.06.2009 15:30

вот рань господня меня надули.

BlooDHounD скажи лучше теперь, как это сделать на супер новом AS

2morrowMan 03.06.2009 16:21

Вложений: 1
Цитата:

Сообщение от kkin (Сообщение 825474)
BlooDHounD скажи лучше теперь, как это сделать на супер новом AS

Да-да, АС3 не для дизайнеров. :quiet:

Вот сделал пример «на супер новом AS», разбирайтесь. Даже код в кадре написал чтобы долго не искали.:)

kkin 03.06.2009 16:51

2morrowMan Благодарю за помощь. Класный пример.
Извините конечно за наглость, а еще проще можно :mosking:

divinus 03.06.2009 16:59

kkin, можно, в вакансии

kkin 03.06.2009 17:03

Просто если отталкиваться от AS 1 все было проще некуда


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

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