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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Для 4-х вариантов switch будет работать не медленнее, чем получение одного значения массива через [].
Да и вообще - этот свитч вызывается только один раз в момент смерти, а сколько другого всякого разного при этом происходит, хорошо если switch занимает от этого всего 0.1%.
И надо оно, здесь оптимизировать?

Если бы свитч выдавал значения для какого-нибудь алгоритма, и вызывался раз 1000 за кадр - можно было бы подумать, посмотреть что быстрее работает. А так - руководствуйтесь соображениями удобства/расширяемости.
Код AS3:
deathSounds[Math.floor(deathSounds.length * Math.random())].play();
С точки зрения типизации - не очень.
Лучше так:
Код AS3:
Sound(deathSounds[Math.floor(deathSounds.length * Math.random())]).play();
Массив по природе - не типизированный, но хоть с написанием play не ошибётесь.
Или так:
Код AS3:
var deathSounds:Vector.<Sound> = new <Sound>[zv_mol1s, zv_mol2s, zv_mol3s, zv_mol4s];
...
deathSounds[Math.floor(deathSounds.length * Math.random())].play();