Показать сообщение отдельно
Старый 11.09.2017, 22:01
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 22  
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
ZackMercury, обалдеть, кратко и эффективно. Всё заработало, спасибо!
Пошёл восхищаться и дальше учить мат. часть.

Добавлено через 3 часа 29 минут
Ещё раз поклон камраду ZackMercury, реализовал его совет в классе-хранителе игровых имён с выдачей оных в нужном падеже. Там же решено было складировать фамилии, наименования локаций и все прочие имена существительные, которые придётся по ходу игры склонять.

Сначала написал несколько однотипных методов-получателей элементов созданных объектов по идентификатору и номеру падежа. Примерно так:

Код AS3:
public class NamePool 
	{
 
		static private var firstName:Object = // Имена всех персонажей во всех падежах
		{
			(GlobalValues.CHARACTER_HERO as String): 	["Джек", "Джека", "Джеку", "Джека", "Джеком", "Джеке"],
			(GlobalValues.CHARACTER_APRIL as String):	["Маша", "Машу", "Маше", "Машу", "Машей", "Маше"]
		} 
 
		public function NamePool():void {}
 
		static public function getfirstName(characterID:String, languageCase:uint):String //Получить имя по ID персонажа
		{return firstName[characterID][languageCase]; 
}
Всё работает прекрасно. Но потом подумалось, что зачем писать идентичный код для каждого массива (имена, фамилии, клички, локации и много чего ещё), если само наименование переменной (в нашем случае firstName:Object), содержащей нужную инфо, можно точно также получать в качестве строкового идентификатора, чтобы потом к ней обратиться по полученному значению. Тогда сигнатура метода должна выглядеть вот так:

Код AS3:
static public function getWordCase(object:String, identificator:String, languageCase:uint):String
А вот как синтаксически сделать корректное обращение, мне не допереть. Просьба помочь. Спасибо.


Последний раз редактировалось Appleman; 12.09.2017 в 01:35.