Тема: Алгоритмы заменить медленный setPixel32
Показать сообщение отдельно
Старый 13.10.2015, 18:52
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 6  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Точно нужно только один раз читать из вектора + заменить Math.max на самописную, типа такого:
Код AS3:
for (i = 0; i < length; i++)
{
    var elem:uint = vector[i]; // одно чтение из вектора
 
    var a:uint = elem >> 16 & 0xFF;
    var b:uint = elem & 0xFF;
    var max:uint = a > b ? a : b; // самописная проверка
 
    if ((elem >> 8 & 0xFF) > max + 7)
    {
        vector[i] = 0;
    }
}
Потому что
а) индексный доступ к массивам в AS3 довольно медленный
б) Math.max - это статический метод, в AS3 это тоже очень и очен медленно работает
__________________
...вселенская грусть