![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2012
Адрес: Санкт-Петербург
Сообщений: 12
|
Есть кодировщик на флеше. делает следующие: в в текстовое поле №1 вводим допустим 001 и получаем во втором текстовом поле букву - А!
Вроде все просто. все сделано и работает, но есть проблема. Исходный цифирный код дается в таком виде: 001/003/005//012/032//852//012/564/. В данном случае символ слеш ( / ) обозначает конец кода буквы и переход к коду другой! Двойной слеш ( // ) соответственно пробел. Вот собственно тут и проблема, как правильно написать функцию. чтобы увидев слеш флеш переходи к чтению следующей группе цифр, до следующего слеша. И соответственно во втором поле буквы не заменял, а добавлял составляя слова?! Буду благодарен за помощь или хотябы подсказку, в каком направлении копать! )) код сейчас выглядит так: package { import flash.display.MovieClip; import flash.events.Event; import flash.text.TextField; public class WCode extends MovieClip { private var input:TextField; private var output:TextField; private var object:Object; public function WCode() { object = new Object(); object["001"] = "а"; object["002"] = "б"; object["003"] = "в"; object["004"] = "г"; input = okno1.input_txt; output = okno2.input_txt; input.text = ""; output.text = ""; input.addEventListener(Event.CHANGE, onTextChange); } private function onTextChange(e:Event):void { var text:String = object[input.text]; if (text) { output.text = text; } } } } Последний раз редактировалось Orfei; 06.12.2012 в 00:23. |
|
|||||
|
В коде символа (001, 002, ...) гарантировано будут три цифры?
И это, сохрани для версии флеша немного ниже, хотя бы для пятой, а то не у всех есть cs6.
__________________
cats are supreme beings |
|
|||||
|
Регистрация: Aug 2012
Адрес: Санкт-Петербург
Сообщений: 12
|
Нет, 3 цифры не всегда. в среднем от 3 до 5. иногда между цифрами попадается символы вроде: &, $, #. и т.д. Исходнички сейчас поправлю. ))
|
|
|||||
|
> вроде: &, $, #
Которые играют какую-то роль или должны игнорироваться?
__________________
cats are supreme beings |
|
|||||
|
Регистрация: Aug 2012
Адрес: Санкт-Петербург
Сообщений: 12
|
Да, они играют роль. Там код на одну букву может выглядеть так : 001, а на другую так: 00&54
А разве это важно? Ведь насколько я понимаю, надо подвесить слушатель к символу слеш ( / ). И далее рисовать функцию. Или я чего-то не понимаю??? |
|
|||||
|
Решения два.
Первое: посимвольное чтение с последующим анализом прочтенного и парсингом (кажется, сие зовется конечными автоматами). Второе: отсплиттить по /\\\\/, каждый элемент полученного массива отсплиттить по /\\/ и прогнаться по всем элементам полученных массивов в конечном итоге. Добавлено через 2 минуты Ну и да, про входящую в парсер строку. Не забываем, что \ - спецсимвол экранировки и его самого нужно экранировать, чтобы получить обратный слеш, а не спецсимвол. Это я так, на всякий пожарный.
__________________
тут я |
|
|||||
|
Регистрация: Aug 2012
Адрес: Санкт-Петербург
Сообщений: 12
|
Цитата:
|
|
|||||
|
Так как строка будет вводиться в текстфилд, слкши будут уже экранированы, не стоит заморачиваться на этот счёт.
__________________
cats are supreme beings |
|
|||||
|
Регистрация: Aug 2012
Адрес: Санкт-Петербург
Сообщений: 12
|
)))
просто я не знаю как заставить флеш не читать дальше символа слеш ( / ). и читать все что далее после него. вот и все. )) |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|