Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[AS] Verandering in variabele afvangen

Pagina: 1
Acties:

  • Tjeemp
  • Registratie: Januari 2005
  • Laatst online: 03-01-2015

Tjeemp

BEER N TEA

Topicstarter
Ik ben bezig met een klein projectje en nu zit ik met een probleem waar ik niet echt gemakkelijk overheen kom.

Ik heb een constructie die ik op de tijdlijn heb geprogrammeerd met de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
loaders[a].onRollOver = function()
{
//hier inhoud
}
loaders[a].onRollOut = function()
{
//hier inhoud
}
loaders[a].onRelease = function()
{
//hier inhoud
}


wat ik nu wil is dat de onRollOver/onRollOut functies niks meer doen als er eenmaal een onRelease heeft plaatsgevonden.
en dan als er op een andere object is geklikt (loaders[a] is een object uit een array) moet bij dit object wel weer de onRollOver/onRollOut actief zijn.

Nu dacht ik zelf dat er wel een mogelijkheid moest zijn om een variabele gewoon mee te geven welk object nu actief is en dan een simpel IF-statement dat laten checken ofzo.

Heeft iemand hier een geniale ingeving voor?

www.timovanderzanden.nl | Beer 'n' Tea


  • Defusix
  • Registratie: September 2007
  • Laatst online: 30-07 17:05
Hallo.
Je kan voor elk event een Boolean(vorm van varriable) maken die aangeeft óf een actie moet gebeuren:

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
//maakt een array aan die aangeeft of een bepaalde knop al "geReleased" is
var hasbeenReleased:Array = new Array();

//vult de array met false
for(var i:Number = 0; i < loaders.length -1; i++){
    hasbeenReleased[i] = false;
}

loaders[a].onRollOver = function()
{
    if(!hasbeenReleased[a]){
    //code
    }
}
loaders[a].onRollOut = function()
{
    if(!hasbeenReleased[a]){
    //code
    }
}
loaders[a].onRelease = function()
{
    hasbeenReleased[a] = true;
    //zorgt er voor dat de andere bij de andere objecten onRollOut/Over weer actief zijn.
    //behalve bij zichzelf
    for(var i:Number = 0; i < loaders.length -1; i++){
        if(a!=i){hasbeenReleased[i] = false;}
    }
}


Ik heb de code zelf niet uit geprobeerd. Maar ik hoop dat je er wat aan hebt.