AS3有没有一种简单的方法来创建这个数组?

时间:2013-09-10 01:37:41

标签: arrays actionscript-3

我会为用户做一些任务,所以我会创建一个数组(false,false,false,...任务数量),每个元素在完成后都会变为true,所以我会知道什么时候完成,女巫仍然不完整。通常我创建一个int来计算创建时的任务,然后减少,但这次我需要控制每个项目(你没有完成这个......),而不仅仅是全局进度。

所以,我只得到了一些任务:

var Ctrl:Array = new Array();
for(var i=0; i<numberOfTasks; i++){ Ctrl.push(false); }

如果我有很多任务,这种方式可能需要一段时间来冻结执行。有一些“自动”方式吗?

2 个答案:

答案 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
}