![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Lorem ipsum
|
У меня код как рулон обоев только из-за того, что я не вижу никакой возможности вынести конструкцию типа
в отдельную функцию, которая меняла бы значения двух переменных типа Number. Такое вообще возможно на AS3? Скорость работы критична — таких операций десятки тысяч на кадр.
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 137
|
А чего нельзя обернуть операцию в функцию статического класса?
|
|
|||||
|
Lorem ipsum
|
Немножечко поумничаю: вроде как нет такого понятия "статический класс" в AS3, и функции класса принято называть методами.
Но не суть — а что это даст? Метод не работает с числовым аргументом как со ссылкой. Он его... как бы это сказать... локализует автоматом. Поэтому если ты передашь какой-то a:Number = 10.5 в какой-то метод, внутри которого происходит коварное a = 5.5, это не возымеет никакого эффекта снаружи. Там a по прежнему будет равняться 10.5 Если бы все было так просто ![]()
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
вариант - хранить 2 числа как объект или массив, тогда при передаче в функцию свап становится возможным )
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Lorem ipsum
|
Скорость доступа к динамическому полю объекта или к элементу массива расценивается как неудовлетворительная.
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
дык задай жестко, классом с паблик переменными - так очень даже удовлетворительно )
хотя конечно сама идея вызывать функцию, чтобы она меняла... Сам по-себе вызов функции дорогой.. Это если конечно настолько критично по скоростям.
__________________
Загружаем картинки, минуя ошибки безопасности Последний раз редактировалось i.o.; 17.02.2011 в 02:13. |
|
|||||
|
Lorem ipsum
|
Менять надо походу четыре пары по одному условию. И если задуматься об организации swap-а для 12 переменных, с явным указанием на конкретную пару... как-то лучше как у меня сейчас:
// сортируем вершины if (sy0 > sy1) { swap = sy0; sy0 = sy1; sy1 = swap; swap = sx0; sx0 = sx1; sx1 = swap; swap = u0; u0 = u1; u1 = swap; swap = v0; v0 = v1; v1 = swap; } if (sy1 > sy2) { swap = sy1; sy1 = sy2; sy2 = swap; swap = sx1; sx1 = sx2; sx2 = swap; swap = u1; u1 = u2; u2 = swap; swap = v1; v1 = v2; v2 = swap; } if (sy0 > sy1) { swap = sy0; sy0 = sy1; sy1 = swap; swap = sx0; sx0 = sx1; sx1 = swap; swap = u0; u0 = u1; u1 = swap; swap = v0; v0 = v1; v1 = swap; } а быстрее точно не будет.
__________________
Поймай яблоко 2! |
|
|||||
|
Цитата:
При условии, что значения нужно отдать после сортировки.
__________________
Книги и желание лучшие учителя. |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
в байткоде кстати есть операция swap.. но это так, к слову
![]()
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
В функцию фиг знает как обернуть, но вобще можно обойтись и без 3 переменной.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 15:56. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|