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

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

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

Регистрация: Nov 2009
Сообщений: 1
По умолчанию Разобраться с текстом actionscript

Доброго времени суток!

Столкнулся с задачкой перевести с языка actionscript на язык object pascal. С delphi проблем у меня нет, но вот правильно понять содержимое скрипта немогу. Помогите пожалуйста.

В целом механика мне понятна. Процедура перекодирует входные данные и возвращает нужный код. Но есть непонятности в ленгвистике actionscript, которые меня ставят в тупик.

Далее переведу код и как я его понял, посмотрите и поправьте те места где я не прав:
Код AS1/AS2:
state.onAnswer=function(data) //некая функция с входным параметром data
{
	debug(this, "onAnswer!"); // что-то связанное с отладкой
	var __reg4=[data.a, data.b, data.c, data.d, data.e]; //заполняем массив __reg4 данными из data, только непонимаю механику присваивания, всмысле что это за тип данных, когда ?индексы? идут буквами через точку
	__reg4.sort(); // сортируем массив по возрастанию
	var __reg3=[]; // инициализация пустого массива __reg3
	__reg3.push(__reg4[4]); // помещаем пятый эл-т массива __reg4 в массив _reg3 c индексом [0] (т.е. команда push помещает эл-т в конец массива)
	__reg3.push(__reg4[2]); // продолжаем действовать в том же духе
	__reg3.push(__reg4[0]); // продолжаем действовать в том же духе
	__reg3.push(__reg4[3]); // продолжаем действовать в том же духе
	__reg3.push(__reg4[1]); // продолжаем действовать в том же духе
	tableA={}; // инициализируем массив tableA, только непонял почему не var и почему "{}"
	tableA["0"]="4"; // заполняем его
	tableA["1"]="c";
	tableA["2"]="f";
	tableA["3"]="b";
	tableA["4"]="3";
	tableA["5"]="5";
	tableA["6"]="a";
	tableA["7"]="6";
	tableA["8"]="9";
	tableA["9"]="8";
	tableA.a="d"; // а что это такое вообще понять не могу... вроде обращаемя по индексу а тут какие то ".a" и пр.
	tableA.b="0";
	tableA.c="2";
	tableA.d="e";
	tableA.e="7";
	tableA.f="1";
	tableB={};
	tableB["0"]="a";
    tableB["1"]="4";
	tableB["2"]="9";
	tableB["3"]="6";
	tableB["4"]="0";
	tableB["5"]="1";
	tableB["6"]="f";
	tableB["7"]="e";
	tableB["8"]="5";
	tableB["9"]="2";
	tableB.a="d";
	tableB.b="0";
	tableB.c="2";
	tableB.d="e";
	tableB.e="7";
	tableB.f="1";
	var __reg2=undefined; // инициализация неидентифицированного массива __reg3
	for (var __reg5 in __reg3) // делаем следующий в {} код для каждого элемента массива, где индекс массива - __reg5
	{
		__reg2=__reg3[__reg5].split(""); // __reg2 присваиваем побуквенно ячейка массива __reg3, которая с индексом __reg5
		i=0; // обнуляем i  
		while (i<__reg2.length) // пробегаем массив __reg2 от начала до конца
		{
			if (i%2==0) // если i четное, то
			{
				__reg2[i]=tableA[__reg2[i]]; // заменяем i-ый элемент массива __reg2 элементом таблицы tableA c индексом равным текущему элементу __reg2
			}
			else // если i нечетное, то
			{
				__reg2[i]=tableB[__reg2[i]]; // заменяем i-ый элемент массива __reg2 элементом таблицы tableB c индексом равным текущему элементу __reg2
			}
			++i; // прибавляем i единицу
		}
		__reg2=__reg2.reverse(); // переворачиваем __reg2 задом на перед
		__reg3[__reg5]=__reg2.join("").substr(0,10); // __reg3 с индексом 5 прсваеваем строку полученную сливанием массива __reg2 и обрезанием хвоста начиная с 11 символа
	}
	trace(data.test); // вывод в output - data.test, но непонятно что значит .test
	trace(__reg3.join(" ")); // вывод в output слитего __reg3
	this.arKey=__reg3; // судя по всему это как раз и есть присваевание какой-то внешней переменной перекодированного массива __reg3
	this.changeState(); // что-то типа выхода из процедуры?
}
вот такая у меня головная боль... буду очень признателен за помощь... спс

Старый 29.11.2009, 18:30
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
На форуме запрещено обсуждение кода, полученного в результате декомпиляции.

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 21:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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