Вам не нужно использовать события.Ваша обработка SQLResult кажется синхронной, задержка отсутствует из-за какого-либо взаимодействия с пользователем, сервером или чем-либо, что может занять некоторое время.
Когда Flash выполняет ваш код, он выполняет следующие действия:
checkRecord('Gb', datetime, matchRecord);
//then
var match:String = result.data[0];
if (match == null) {
var allClear:Event = new Event("isNewRecord");
dispatchEvent(allClear);
}
//and finally
addEventListener("isNewRecord", recordExists);
Событие отправляется до добавления слушателя.Вот что вы должны сделать:
public function addBG(BG:Number, datetime:String, batch:Boolean = false):void
{
if (checkRecord('Gb', datetime, matchRecord))
{
recordExists();
}
}
public function recordExists():void
{/*code to execute query*/}
public function matchRecord(result:SQLResult):Boolean{
var match:String = result.data[0];
if (match == null) {
return true;
}
return false;
}
Приветствия