我会为用户做一些任务,所以我会创建一个数组(false,false,false,...任务数量),每个元素在完成后都会变为true,所以我会知道什么时候完成,女巫仍然不完整。通常我创建一个int来计算创建时的任务,然后减少,但这次我需要控制每个项目(你没有完成这个......),而不仅仅是全局进度。
所以,我只得到了一些任务:
var Ctrl:Array = new Array();
for(var i=0; i<numberOfTasks; i++){ Ctrl.push(false); }
如果我有很多任务,这种方式可能需要一段时间来冻结执行。有一些“自动”方式吗?
答案 0 :(得分:2)
您还可以创建数组并验证数组[task]是否未定义,是否未设置,并且它的You等于false。
var ctrl:Array = new Array();
var maxTasks:int = 100;// doesnt matter here
var tasksComplete:int = 0;// if You dont like to loop each time
function completeTask(id:int):void{
ctrl[id] = true;
tasksComplete ++;
}
function isTaskComplete(id:int):Boolean{
return ctrl[id]?true:false;
}
答案 1 :(得分:1)
您可以使用词典而不是数组。
喜欢这个
var dic:Dictionary = new Dictionary();
var task:Task = new Task();
task.addEventListener(Event.Complete, onTaskComplete);
dic[task] = false; //you will set false value only the task executes
task.execute();
private function onTaskComplete(e:Event):void {
var task:Task = e.target as Task;
dic[task] = true;
//check the dic if all tasks are finished
}