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

Регистрация: Mar 2016
Сообщений: 52
Цитата:
зачем второй вектор?
без вектора S не могу никак по другому вытащить ссылку.
Цитата:
зачем первый?
Звуки в библиотеке хранятся в векторе, это просто стоит воспринять как данное. Они точно верно загружены, вопрос только с вытаскиванием ссылки.
Цитата:
зачем забор по индексу?
достать нужно 1 ссылку, поэтому и индекс
Цитата:
откуда в векторе звуки?
Я просто опустил эту часть кода когда в вектор заливаются звуки, так как с этой частью проблем нет, проблема - вытащить 1 из звуков и передать дальше, причем оптимально, без загрузки памяти

Добавлено через 19 минут

Код AS1/AS2:
var cache:Object={}; 
public function get_mus(id:String):Sound{
return cache[id]||(cache[id]=new getDifinitionByName(id))
Что-то мне подсказывает что каждый раз пересоздавать объект оператором new и через функцию возвращать весь, это как минимум не более оптимально чем написал я. У меня хотя бы getDifinitionByName для 1 элемента используется 1 раз при загрузке, тут каждый раз при обращении..
Других варианты есть у кого нибудь ?

Добавлено через 58 минут
Еще раз сформулирую проблему. Объект звука нужно создать 1 раз, а дальше только распоряжаться ссылками на него.
Вот такой вариант прокатит ? функция будет возвращать лишь ссылку, или где то по ходу ее выполнения все равно будет происходить копирование самих данных звука ?
Код AS1/AS2:
public function get_mus(N:int):Sound
{
return(SOURСE_MUSIC[N]);
}


Последний раз редактировалось Egstond; 12.05.2017 в 18:02.