Я создаю программу в Adobe Animate;Одной из функций является отправка сообщений OSC в программу освещения DMX для изменения освещения в комнате.
Стандартные изменения работают, как и ожидалось, но у меня проблемы с "затуханиями".Мне нужно отправить серию сообщений OSC подряд.
Теперь у меня есть Adobe Animate, который создает серию таймеров с помощью независимой функции.Мне кажется, что мне нужна функция задержки, но я знаю, что это невозможно в AS3.
function fadeFixtureData(fixture:int, rgbStart:Array, rgbEnd:Array, intervals:int):void
{
if (rgbStart.length != rgbEnd.length)
{
return void;
}
var rgbCalculated:Array = new Array();
for (var i = 0; i <= intervals; i++)
{
for (var j = 0; j < rgbStart.length; j++)
{
rgbCalculated[j] = ((((rgbEnd[j] - rgbStart[j])/intervals) * (i)) + rgbStart[j]);
}
delayedFunctionCall((i * 33), function(e:Event) {sendFixtureData(fixture,rgbCalculated);});
trace(i * 33);
trace(rgbCalculated);
}
}
function delayedFunctionCall(delay:int, func:Function) {
var timer:Timer = new Timer(delay, 1);
timer.addEventListener(TimerEvent.TIMER, func);
timer.start();
}
Программа, кажется, отслеживает все правильно, но в результате все сообщения отправляются одновременно.Только последнее сообщение передается в программу освещения.