Для заказчика
Главная
Информация
Услуги
Цены
Контакты
Обмен опытом
WEB, куда уходят профессионалы
WEB мастеру
Раскрутка сайта
О контенте
Баннерные сети
Дизайнеру
Macromedia Flash
PhotoShop
О баннерах
Пользователю
Полезные ссылки
Как искать в сети

Macromedia Flash: полезные приёмы.   

Русификация ActionScript консоли
Предзагрузка и метод attachSound
Конвертация win2koi средствами flash

Если сообщение, отправляемое из Flash'ой мейл-формы, не подвергается специальной конвертации на сервере, то оно поступает адресату в win-кодировке или, как это называют в народе, кракозябликами. Это не правильно, т.к. в РуНете для почтовых сообщений по умолчанию принята кодировка koi8-r. По этому поводу уже давно идет вялотекущая религиозная война, изредка обостряющаяся локальными конфликтами между отдельными сектами фундаменталистов под лозунгами: "КОИ - в натуре маздай форева!!!" и "За святую KOI пасть порвем до жопы!!!". Почему так произошло и хорошо это или нет, не является предметом данной статьи. Объективная реальность именно такова и не считаться с ней глупо. С целью решения этой проблемы и была написана функция win2koi. Достаточно скопировать ее код и вставить куда-нибудь в свой проект, например в первый кадр основной линейки (root). В этом случае ее можно будет вызывать из любого места клипа командой:

text=_root.win2koi(text);

Где text - конвертируемая строка (строковая переменная), например, содержимое текстового поля.
Пример работы функции см. внизу страницы.

Функция win2koi()

//------------------------------------------------------
// win2koi
//------------------------------------------------------
function win2koi(text) {
var koi,w2k,k,i,N=length(text);                           // 1
koi ="225226247231228229246250233234235236237238239240";  // 2
koi+="242243244245230232227254251253255249248252224241";
koi+="193194215199196197214218201202203204205206207208";
koi+="210211212213198200195222219221199217216220192209";
while(i++<N) {                                            // 3
 k=ord(substring(text,i,1))-192;                          // 4
 if(k>=0){w2k+=chr(substring(koi,3*k+1,3));               // 5
 } else if(k==-8) {w2k+=chr(163);
 } else if(k==-24){w2k+=chr(179);
 } else {w2k+=substring(text,i,1);}
}
delete koi; delete k; delete i; delete N;                 // 6
return(w2k);                                              // 7
}
//------------------------------------------------------

 

  1. Инициализация локальных переменных
  2. Кодовая таблица koi8-r
  3. Запуск парсинга переданной в функцию строки
  4. Определение знакоместа символа в кодовой таблице
  5. Конвертация символа в зависимости от его анализа
  6. Чистка оперативной памяти
  7. Возврат результата обработки

Дизайн студия "Eviant Studio". 2000-2002



Rambler's Top100
Rambler's Top100 Рейтинг@Mail.ru
Хостинг от uCoz