Тема: {mdm}Zinc
Показать сообщение отдельно
Старый 04.05.2007, 08:31
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 79  
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
По умолчанию Код

код во .fla:
Код:
#include "remap.as"
this.createTextField("my_txt", 0, 10, 10, 500, 220);
my_tex.type = "input";
my_txt.multiline = true;
my_txt.border = true;
ke = "";
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
	var code:Number = Key.getCode();
	if (code == 13) {
		my_txt.text += newline;
		return;
	}
	if (code == 32) {
		my_txt.text += " ";
		return;
	}
	if (Key.isDown(Key.SHIFT)) {
		shift = true;
	} else {
		shift = false;
	}
	if (shift && !Key.isToggled(Key.CAPSLOCK)) {
		ke = "0";
	}
	if (!shift && Key.isToggled(Key.CAPSLOCK)) {
		ke = "0";
	}
	if (shift && Key.isToggled(Key.CAPSLOCK)) {
		ke = "";
	}
	if (shift && code == 220) {
		var ke = "0";
	}
	if (!shift && code == 220) {
		var ke = "";
	}
	if (shift && code == 191) {
		var ke = "0";
	}
	if (!shift && code == 191) {
		var ke = "";
	}
	if (shift && code >= 48 && code <= 57) {
		var ke = "0";
	}
	if (!shift && code >= 48 && code <= 57) {
		var ke = "";
	}
	my_txt.text += String.fromCharCode(remap["i" + code + ke]);
	ke = "";
};
Key.addListener(keyListener);
include во вложении
Привязка происходит именно к кодам клавиш, а не к Ascii. В remap.as просто вручную расписаны по кнопкам символы. Все это можно заточить получше. Это всего лишь рабочий вариант.
Косяк: если вручную нарисовать TextField и дать ему тип input - работать будет гораздо хуже. Поможет my_txt.restrict = "^a-z\\A-Z"
Вложения
Тип файла: zip remap.zip (640 байт, 72 просмотров)


Последний раз редактировалось alexcon314; 04.05.2007 в 08:54.