Показать сообщение отдельно
Старый 30.11.2012, 23:22
Ленок вне форума Посмотреть профиль Отправить личное сообщение для Ленок Найти все сообщения от Ленок
  № 3  
Ответить с цитированием
Ленок

Регистрация: Nov 2012
Сообщений: 31
Приходят данные произвольной структуры, надо с ними работать.

А в AS3 нет средств, позволяющих лаконично написать такой код? Надо сделать сеттер и геттер. Первый получает ключ массива произвольной глубины (land.town.tower.room...) и значение, создает указанный элемент. Второй получает ключ, и возвращает значение по нему.

Как указывать на элементы объекта?


Страшный сеттер

Код AS3:
var fragments:Array = name.split('.');
			if (fragments.length == 1)
			{
				stack[name] = value;
			}
			if ((stack[fragments[0]] == undefined) && (fragments.length > 1))
			{
				stack[fragments[0]] = {};
			}
			if ((stack[fragments[1]] == undefined) && (fragments.length > 2))
			{
				stack[fragments[0]][fragments[1]] = {};
			}
			if ((stack[fragments[2]] == undefined) && (fragments.length > 3))
			{
				stack[fragments[0]][fragments[1]][fragments[2]] = {};
			}
			switch (fragments.length)
			{
				case 2:
					stack[fragments[0]][fragments[1]] = value;
					break;
				case 3:
					stack[fragments[0]][fragments[1][fragments[2]] = value;
					break;
				case 4:
					stack[fragments[0]][fragments[1][fragments[2]][fragments[3]] = value;
					break;
			}
И что? Неужели это должно быть именно так ужасно?