DET KAN MAN IKKE!
Og det er en meget vigtig ting at fatte, når man programmerer flash. Til flash5 er der lavet en engine, der kan håndtere sådanne ting. Den hedder FLEM og kan hentes fra
http://chattyfig.figleaf.comTil flash6 findes denne engine men er udokumenteret. Den hedder ASBroadCaster og ideen i dem begge er, at man kan skrive ting som:
myObject = new Object();
myObject.enterFrame = function() {
// do enterframe stuff
}
MovieClip.addListener(myObject);
Det er ikke helt sådan, men ideen er der. Det der så sker er, at man kun har ét movieclip, der tjekker på enterFrame og blot når der er en ny frame kalder alle tilmeldte objekter med den pågældende funktion. Der er selvfølgelig og Key.addListener, Mouse.addListener og lidt til... Havde myObject en mouseDown-funktion, så ville den blive kaldt når den pågældende engine sendte denne event ud.
Skal en operation ske over flere frames, er du nødt til at hægte den op på en eller anden enterFrame-kald. Du kan lave et dummyClip til at fange den. Du kan også hente FLEM, der består af et dummyClip, som sørger for at holde styr på alle listeners...