Hoe moet ik een object in actionscript laten "verdwijnen", het object moet niet weg zijn, maar het mag niet meer zichtbaar zijn, en de EventListener die er aan verbonden is, moet weg zijn. Die listener is dat als erop geklikt wordt, de score met 1 verhoogd moet worden. Het is dus de bedoeling dat de bal weg gaat als erop geklikt is en de score met 1 verhoogd. Dit laatste heb ik al, alleen vind ik geen optie om de bal te laten verdwijnen en dat de listener weg is. Dit is de code :
punten.text = "0";
var score = "1";
bal1.addEventListener(MouseEvent.CLICK, hit);
bal2.addEventListener(MouseEvent.CLICK, hit);
function hit (event:MouseEvent):void{
punten.text = score++;
//hoe moet ik die bal laten verdwijnen ?
}
punten.text = "0";
var score = "1";
bal1.addEventListener(MouseEvent.CLICK, hit);
bal2.addEventListener(MouseEvent.CLICK, hit);
function hit (event:MouseEvent):void{
punten.text = score++;
//hoe moet ik die bal laten verdwijnen ?
}
Ik heb al gedacht om een gotoandstop te doen en daar op de stage van de filmclip bal, een witte frame te zetten, maar dan gaat de bal eigenlijk gewoon door, en zou je eigenlijk nog op de bal kunnen klikken. Hij moet dus weg gaan, maar het object zelf moet bewaard blijven. Ik heb al op internet gezocht, maar heb niet echt iets duidelijk gevonden. Ik denk dat dit toch moet bestaan ?
14 antwoorden
Gesponsorde links
Abbas - 02/02/2010 19:33 (laatste wijziging 02/02/2010 19:36)
Crew .NET
Je kan removeEventListener() gebruiken om een EventListener te verwijderen die je niet meer nodig hebt. Parameters zijn de eventnaam en listener-parameters.
Het object kan je verwijderen met removeChildAt(), via getChildIndex() kan je de index van het gewenste object ophalen om dan te gebruiken in die eerste methode.
Tussen de haakjes van die removeChildAt moet wel de index van je object komen. Die index haal je op aan de hand van de functie getChildIndex(). Heb je wel alles gelezen in m'n vorige post? Anders moet je eens verder zoeken op Google hierover.
Lukt niet hoor. Ik krijg deze foutmelding als ik op een bal klik :
RangeError: Error #2006: De opgegeven index is buiten de grenzen.
at flash.display::DisplayObjectContainer/removeChildAt()
at klikgame2_fla::MainTimeline/hit()
Alleen vind ik dit een beetje omslachtig om voor elke bal een andere functie te maken. Ik kan het niet in één functie zetten, omdat dan als je op 1 bal klikt, de andere ook weg is. Is er geen mogelijkheid om dit op te lossen in 1 functie ? want nu is het maar met 2 ballen, maar het is de bedoeling om er in elk level ( ook al is de game nog niet af. ) 1 bal bij te doen. En als ik dan aan level 10 zit, moet ik al 12 verschillende functies maken, met bijna dezelfde code.
Nu werkt het, maar als ik op een bal klik, verdwijnt hij wel, maar komt er een venster met uitvoer, en daar staat het volgende in :
TypeError: Error #2007: Parameter child mag niet null zijn.
at flash.display::DisplayObjectContainer/removeChild()
at balverdwijn2_fla::MainTimeline/hit()
TypeError: Error #2007: Parameter child mag niet null zijn.
at flash.display::DisplayObjectContainer/removeChild()
at balverdwijn2_fla::MainTimeline/hit()
Maakt niet uit, als ik het als swf publiceer, komt die foutmelding niet. BEDANKT !