На вашем месте я бы больше волновался о том, как эффективно выполнять математику, а не обмениваться данными, потому что там вы теряете много времени.
Мой совет на этот счет будет:
Выполните все вычисления в BubbleContainer (или где-либо еще, но в одном месте, а не внутри каждого объекта)
Такие вещи, как Math.PI / 180
Precalc 2 массива / вектора синуса и
значения косинуса (быстрее получить
они из массива, а не
каждый раз вызывая Math.sin / Math.cos)
Передать результат пузырьковому спрайту.
за 1 звонок (как указала Кристи)
Создать функцию, которая принимает ввод
параметры, все математические и
возвращает ответ.
Для каждого набора входных данных (на каждом
калибровка этой функции):
Сначала посмотрите, если
ответ был рассчитан раньше, если он
был извлечен из ответа
словарь.
если не подсчитать и добавить в
словарь ответов.
Создать запись в словаре, которая
имеет входные значения в качестве ключа и
ответь как ценность. Таким образом, вы
создание кеша ответов. За
сложные, повторяющиеся вычисления с
относительно небольшое количество ввода
параметры (как в вашей ситуации) это
быстрее получить ответ, который вы
уже рассчитано из словаря
вместо того, чтобы делать расчет
снова. Если вы будете использовать массив вместо словаря, я думаю, он будет еще быстрее ..
Быстрый пример, не оптимизированный, просто чтобы дать вам представление:
function multiply(x:int,y:int):int{
var retValue:int;
var key:String=String(x)+String(y);
if (answers[key]){ retValue=answers[key];}
else{ retValue=x*y; answers[key]=retValue;}
return retValue;
}