Я работаю над проектом AS2. В настоящее время у меня есть функция, которая ссылается на некоторые пакеты PHP. По сути, пакет отправляется, а затем возвращает некоторую информацию на основе аргумента. Просто, правда.
Проблема в том, что исходная функция должна возвращать эти данные. Поэтому мне нужно подождать, пока пакет вернется, чтобы вернуться. За исключением того, что вы не можете прикрепить «возврат» как функцию для слушателя.
function handleReturnNicknameById(id)
{
nFunctionComplete = 0;
trace("api : handleGetSwidById");
AIRTOWER.send(AIRTOWER.PLAY_EXT, "friends#getPlayerInfoById", [id], "str", SHELL.getCurrentServerRoomId());
AIRTOWER.addListener('getPlayerInfoById', handleReturnNickname);
while(nFunctionComplete < 700)
{
if(nickReady == true)
{
nFunctionComplete = 701;
return(nickToReturn);
}
nFunctionComplete++;
}
}
function handleReturnNickname(obj)
{
AIRTOWER.removeListener('getPlayerInfoById', handleReturnNickname);
obj.shift();
nickToReturn = obj[1];
nickReady = true;
}
Это единственная идея, которая у меня была, чтобы заставить его работать. Я понимаю, что это ужасно неэффективно, поэтому я прошу помощи здесь.
В конечном итоге возникает вопрос: можно ли в AS2 заставить функцию «ждать» перед возвратом?