[AS3.0] EventHandler op meerdere objecten

Pagina: 1
Acties:

  • Nibbz
  • Registratie: September 2001
  • Laatst online: 18:06

Nibbz

Postmaster General

Topicstarter
Ben bezig met een weergave van een aantal personen in flash. Er zit een for loop in, die op dit moment 60 bolletjes tekent met daarin een mask van een bepaald persoon. Nu wil ik alleen dat als je met de muis over zo'n bol gaat, het bolletje groter word.

Ik heb geprobeerd m.b.v. een teller een event mee te geven. Dit werkt niet, omdat dan alleen het laatste object gepakt word.

Heb het internet rondgezocht met woorden als "AS3 Multiple Objects same Handler" hier heb ik alleen niks kunnen vinden.

Ik zal de code even erbij plaatsen

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
var xpos, ypos;
xpos = 15;
ypos = 15;
var mcholder:MovieClip = new MovieClip();
mcholder.graphics.drawRoundRect(0,0,491,430,0)
addChild(mcholder);
createBollen();
function createBollen():void
{
    for (var i=0; i< 60 ; i++)
        {
            
            if (xpos>(mcholder.width - 10))
            {
                ypos=ypos+55;
                xpos=15;
            }
                var mcbolholder:MovieClip = new MovieClip();
                addChild(mcbolholder);
                mcbolholder.x = xpos;
                mcbolholder.y = ypos;
                var loader:Loader = new Loader();
                var url:URLRequest = new URLRequest("../images/mensen/image1.png");
                loader.load(url);
                mcbolholder.addChild(loader);
                loader.cacheAsBitmap = true;
                var masker:MovieClip = new MovieClip;
                masker.graphics.beginFill(0xFF0000);
                masker.graphics.drawCircle(75,75,75);
                masker.graphics.lineStyle(10, 0xFFFFFF);
                masker.graphics.endFill();
                masker.cacheAsBitmap = true;
                mcbolholder.addChild(masker);
                loader.mask = masker;
                mcbolholder.width = 32;
                mcbolholder.height = 32;
                mcbolholder.name = "bol"+[i];
                getChildByName("bol"+[i]).addEventListener(MouseEvent.MOUSE_OVER, vergroten);
                getChildByName("bol"+[i]).addEventListener(MouseEvent.MOUSE_OUT, verkleinen);
                xpos = (xpos + mcbolholder.width + 10);
        }
}

function vergroten(event:MouseEvent):void
{
    this.width = this.height = 120;
}

function verkleinen(event:MouseEvent):void
{
    this.width = this.height = 32;
    
}



In het ergste geval zou je een forloop over je function laten lopen, die elke keer een functie toekent aan een mcbolholder. Maar dat lijkt me behoorlijk cpu intensief..

Zit ik op de goeie weg? of moet ik een andere inslaan?

edit: klein type foutje

13:37


  • Nibbz
  • Registratie: September 2001
  • Laatst online: 18:06

Nibbz

Postmaster General

Topicstarter
heb het antwoord al gevonden..

code:
1
event.currentTarget.scaleX = event.currentTarget.scaleY


was de oplossing

13:37