PDA

Volledige versie bekijken : Count instances


iZe
%Europe/Berlin %603 %2006, 14:29
Hallo,

is er een manier om Actionscript het aantal instances van een class te laten tellen die op de stage staan (om er op die manier doorheen te loopen) ?

Alvast bedankt,

iZe

theFlashWizard
%Europe/Berlin %613 %2006, 14:43
nops.

als je het aantal wel bijhoud kun je er mischien met een for loop doorheen lopen.

Dauntless
%Europe/Berlin %614 %2006, 14:44
Gaat wel hoor, theFlashWizard :

var tijdlijn:MovieClip = this;
var aantalInstances:Number = 0;
for(var i in tijdlijn)
{
if(tijdlijn[i] instanceof CLASSENAAM){ //classenaam zonder quotes
aantalInstances ++;
}
}

En als je ze daarna ook wil doorlopen:


var tijdlijn:MovieClip = this;
var instances:Array = new Array();
for(var i in tijdlijn)
{
if(tijdlijn[i] instanceof CLASSENAAM){ //classenaam zonder quotes
instances.push(tijdlijn[i]);
}
}

//en door alle instances lopen:
for(var k in instances)
{
instances[k].doeIets();
}

Fatty Owl
%Europe/Berlin %617 %2006, 14:48
staan instances van classes op de stage :S?

iZe
%Europe/Berlin %617 %2006, 14:49
Dauntless, dude, dat is geweldig!
Precies wat ik nodig had. Dan kan ik nu vlug verder met het halen van mijn deadline ;)

iZe
%Europe/Berlin %618 %2006, 14:50
staan instances van classes op de stage :S?
Instances van de Movie Clip class (of subclasses daarvan) wel.

theFlashWizard
%Europe/Berlin %620 %2006, 14:54
mijn excuses, weer wat geleerd :)

Dauntless
%Europe/Berlin %628 %2006, 15:05
En eendert welke instances!

Als je nu deze classe hebt:

class Lamp
{
public function Lamp()
{

}
public function doeIets():Void
{
trace("haai");
}
}

En in je fla zet je dit:

var myLamp:Lamp = new Lamp();
var myLamp2:Lamp = new Lamp();

var tijdlijn:MovieClip = this;
var instances:Array = new Array();
for(var i in tijdlijn)
{
if(tijdlijn[i] instanceof Lamp){
instances.push(tijdlijn[i]);
}
}

//en door alle instances lopen:
for(var k in instances)
{
instances[k].doeIets();
}

Dan zie je keurig 2 traces verschijnen. Hij kijkt immers naar alle instances op je tijdlijn... Dus 'stage' is eigenlijk een slechte woordkeuze van de topic starter, aangezien dat in principe alleen bij de MovieClip van toepassing is.