Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.08.2012, 16:54
MonahMonahich вне форума Посмотреть профиль Отправить личное сообщение для MonahMonahich Найти все сообщения от MonahMonahich
  № 1  
Ответить с цитированием
MonahMonahich

Регистрация: Aug 2012
Сообщений: 1
По умолчанию Кодировка текста в текстовом поле.

Для плеера загружаю файл из интернета по относительной ссылке. После начала загрузки беру окончательный адрес, вырезаю имя и вывожу в текстовое поле.
Выводятся глупости, как при попытке копировать адрес с Википедии. В CS6 все работает нормально но вот в фаерфоксе, хроме, и эксплоере не так как надо. Спинным мозгом чувствую, что надо кодировку сменить. Но как ?
Даже проводил эксперимент начитавшись поиска по форуму.
Который доказывает, что получаю UTF-8. Но вот отображать в текстовом поле UTF-8 не хочет.
Код AS3:
var b:ByteArray = new ByteArray();
b.writeMultiByte(nameMP3File,"UTF-8");
trace(b);
Вот собственно код:
Код AS3:
// Для хранения окончательного адреса файла
var nameMP3File:String = "";
// Текстовое поле для отображения имени файла.
var textTitle:TextField = new TextField();
var textTitleFormat:TextFormat = new TextFormat();
// Настройка текстового поля.
textTitleFormat.size = 14;
textTitleFormat.font = "Arial";
 
textTitle.defaultTextFormat = textTitleFormat;
textTitle.height = 20;
textTitle.width = 300;
textTitle.border = true;
textTitle.selectable = false;
addChild(textTitle);
 
// Для аудио данных.
var tempSoundData:Sound = new Sound;
// Аудио канал.
var tempChannelLinc:SoundChannel;
// Запрос на файл.
var tempRequestLinc:URLRequest = new URLRequest("http://www.******/get/30246096");
// Загрузка по адресу.
tempSoundData.load(tempRequestLinc);
// Событие загрузки. Появляется пока идет загрузка.;
tempSoundData.addEventListener(ProgressEvent.PROGRESS,onProgress);
function onProgress(event:Event)
{
   // Как только получено имя файла, функция будет работать в холостую.
   if (nameMP3File.length < 1)
   {
      // Взятие прямой ссылки на файл.
      nameMP3File = tempSoundData.url;
       // Получение названия файла (без расширения).
      nameMP3File = nameMP3File.substring(nameMP3File.lastIndexOf("/") + 1,nameMP3File.lastIndexOf("."));
       // Показать имя в текстовом поле.
      textTitle.text = nameMP3File;
      // Убрать за собой более не нужное.
      // В теории приостановит загрузку.
      tempSoundData = null;
      tempChannelLinc = null;
   }
}
stop();
Третий день мучаюсь. Не пойму что не так.




Добавлено через 1 час 44 минуты
Крыша едет не спеша.

Добавил код перед присвоением текстовому полю.

Код AS3:
var tempString:String = "";
var charNumb:Array = [1055, 1088, 1086, 1087, 1072, 1075, 1072, 1085, 1076, 1072, 95, 45, 95, 1052, 1077, 1083, 1086, 1084]
var charCode:int = 0;
for (var i:int = 0; i != nameMP3File.length; i++)
{
	trace ("charNumb[i] " + charNumb[i])
	tempString += String.fromCharCode(charNumb[i])
	trace("tempString " + tempString)
}
nameMP3File = tempString;
Вывод в Дебаг:

charNumb[i] 1055
tempString П
charNumb[i] 1088
tempString Пр
charNumb[i] 1086
tempString Про
charNumb[i] 1087
tempString Проп
charNumb[i] 1072
tempString Пропа
charNumb[i] 1075
tempString Пропаг
charNumb[i] 1072
tempString Пропага
charNumb[i] 1085
tempString Пропаган
charNumb[i] 1076
tempString Пропаганд
charNumb[i] 1072
tempString Пропаганда
charNumb[i] 95
tempString Пропаганда_
charNumb[i] 45
tempString Пропаганда_-
charNumb[i] 95
tempString Пропаганда_-_
charNumb[i] 1052
tempString Пропаганда_-_М
charNumb[i] 1077
tempString Пропаганда_-_Ме
charNumb[i] 1083
tempString Пропаганда_-_Мел
charNumb[i] 1086
tempString Пропаганда_-_Мело
charNumb[i] 1084
tempString Пропаганда_-_Мелом


ВСЕ РАБОТАЕТ КАК НАДО. И в CS и в Фаерфоксе. ИЕ ничего не показал.




Изменил код на на:
Код AS3:
var tempString:String = "";
var charNumb:Array = new Array();
var charCode:int = 0;
for (var i:int = 0; i != nameMP3File.length; i++)
{
	charNumb[i] = nameMP3File.charCodeAt(i);
	trace ("charNumb[i] " + charNumb[i])
	tempString += String.fromCharCode(charNumb[i])
	trace("tempString " + tempString)
}
nameMP3File = tempString;

Вывод в Дебаг:

charNumb[i] 1055
tempString П
charNumb[i] 1088
tempString Пр
charNumb[i] 1086
tempString Про
charNumb[i] 1087
tempString Проп
charNumb[i] 1072
tempString Пропа
charNumb[i] 1075
tempString Пропаг
charNumb[i] 1072
tempString Пропага
charNumb[i] 1085
tempString Пропаган
charNumb[i] 1076
tempString Пропаганд
charNumb[i] 1072
tempString Пропаганда
charNumb[i] 95
tempString Пропаганда_
charNumb[i] 45
tempString Пропаганда_-
charNumb[i] 95
tempString Пропаганда_-_
charNumb[i] 1052
tempString Пропаганда_-_М
charNumb[i] 1077
tempString Пропаганда_-_Ме
charNumb[i] 1083
tempString Пропаганда_-_Мел
charNumb[i] 1086
tempString Пропаганда_-_Мело
charNumb[i] 1084
tempString Пропаганда_-_Мелом
*/
Фаерфокс показывает: %D0%9F%D1%80%D0%BE%D0%BF%D0%B0%D0%B3%D0%B0%D0%BD%D0%B4%D0%B0_-_%D0%9C%D0%B5%D0%BB%D0%BE%D0%BC
ИЕ ничего не показывает.

Перефразировав UKR(Андрійя Миколайчука - "Піду втоплюся": Піду нап'юся із банки літровой)...


Последний раз редактировалось MonahMonahich; 14.08.2012 в 18:44.
Создать новую тему Ответ Часовой пояс GMT +4, время: 13:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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