Archief - FLASH: functie na functie doorlopen en niet tegelijkertijd

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

sgtsylvester

Legacy Member
Kben nu al een tijdje aan het zoeken naar mijn probleem.:doh:

Mijn functie.onPress doorloopt 3 functies tegelijkertijd is er een mogelijkheid om deze 1 per 1 te doorlopen ? Visueel zou er eerst van een heleboel movieclips de alpha waarde moeten worden aangepast. Daarna een kader (movieclip) worden geopend met xscale en yscale. en daarna een tween worden afgespeeld. Dit wordt nu allemaal tegelijkertijd uitgevoerd.

mvg.

orez

Legacy Member
redelijk simpel hé.

3 functies schrijf je, je laat de volgende functie pas starten als de vorige gecomplete is, en das zeer eenvoudig te bereiken met een if structuurtje.

de alpha waarde moet worden aangepast bv:

Je controleert van je movieclip als de alpha waarde bv = 100
Pas dan start je de volgende met xscale / yscale.
If yscale = 50 & xscale = 50 dan start je de tween functie...

sgtsylvester

Legacy Member
Even wat code posten,omdat ik met onEnterFrame werk denk ik niet dat het zo eenvoudig is. Als je met je if structuur controleert is de alpha waarde nog niet 0 hij is nog bezig met verminderen omdat de functies tegelijkertijd gaan. Kheb al zitten proberen met for lussen en dergelijke:


playstation_mc.onPress = function()
{

this.onEnterFrame= function()
{

if(muren_mc._alpha>0)
{

muren_mc._alpha = muren_mc._alpha -3;
logo_mc._alpha = logo_mc._alpha -3;
toog1_mc._alpha = toog1_mc._alpha -3;
toog2_mc._alpha = toog2_mc._alpha -3;
infopc_mc._alpha = infopc_mc._alpha -3;
bordnieuw_mc._alpha = bordnieuw_mc._alpha -3;
cdrek_mc._alpha = cdrek_mc._alpha -3;
bordreclame_mc._alpha = bordreclame_mc._alpha -3;
schakelaar_mc._alpha = schakelaar_mc._alpha -3;
playstation_mc._alpha = playstation_mc._alpha -3;
computer_mc._alpha = computer_mc._alpha -3;
}

}
plaatsAchtergrond();


}

function plaatsAchtergrond()
{

achtergrond_mc._visible = true;
achtergrond_mc._xscale = 0;
achtergrond_mc._yscale = 0;


this.onEnterFrame = function()
{
if(achtergrond_mc._yscale<3)
{
achtergrond_mc._yscale +=5;
}
if (achtergrond_mc._xscale<100)
{
achtergrond_mc._xscale += 2;
}

if (achtergrond_mc._xscale>=100 && achtergrond_mc._yscale<100)
{
achtergrond_mc._yscale += 5;
}



}


}

Gerritn

Legacy Member
Zet es de functie plaatsAchtergrond() in de else van je if. Zou toch moeten helpen.
En ook opletten, je doet telkens +3, dus best is om te rekenen dat je 102 alpha zal uitkomen, wat niet kan, dus wanneer je alpha groter is dan 94 en kleiner dan 97, dan zet je hem best hardcoded naar 100.

sgtsylvester

Legacy Member
heb ik ook al geprobeerd :), hij probeerd dan bij ieder onEnterframe plaatsAchtergrond(); . Visueel is er enkel een klein kaderke te zien van zon 20 X 20 px. Die er komt te staan zonder te scalen.

Gerritn

Legacy Member
Heb je niet het probleem dat alpha altijd groter is dan 0, door wat ik in bovenstaande post gezegd heb:

100 - (33x 3) = 1, en alpha kan afaik niet negatief gaan, dus zal ie nooit 0 worden. Moet je met een if opvangen.

Edit: alpha kan blijkbaar wel negatief gaan, wat je kan doen is zoiets:

Code:
function onzichtbaarMaken():Void {
  this.onEnterFrame() = function:Void {
    if (muren_mc._alpha >= 3) {
      muren_mc._alpha -= 3;
      //idem voor de rest van de movieclips
    } else {
      muren_mc._alpha 0;
      //idem voor de rest van de movieclips
      plaatsAchtergrond();
      //Van onderstaande ben k niet meer zeker welke de juiste is, het is wat te lang geleden
      this.onEnterFrame = null;
      delete this.onEnterFrame
    }
  }
}

Dit doe je dan zo verder tot je de 3 functies doorlopen hebt.

sgtsylvester

Legacy Member
volgend probleem:


Code:
playstation_mc.onPress = function()
{
	test();
}
function test()
{
			this.onEnterFrame= function()
			{						
				if(muren_mc._alpha>=10)
				{			
					muren_mc._alpha  -=10;
					logo_mc._alpha -=10;
					toog1_mc._alpha -=10;
					toog2_mc._alpha -=10;
					infopc_mc._alpha -=10;
					bordnieuw_mc._alpha -=10;
					cdrek_mc._alpha -=10;
					bordreclame_mc._alpha -=10;
					schakelaar_mc._alpha -=10;
					playstation_mc._alpha -=10;
					computer_mc._alpha -=10;		
				}
				else
				{
					muren_mc._alpha =0;
					onzichtbaarMaken();
					plaatsAchtergrond();
					 this.onEnterFrame = null;     				
				}						
			}		

}

Hij doorloopt de funtie test maar doet enkel de this.onEnterframe. de functies die in de else structuur staan doet hij niet , is het omdat ik teveel functies in functies gebruik ?

Gerritn

Legacy Member
Best is om zowiezo die function test() toch al buiten je andere functie te zetten.

LunchBox

Legacy Member
gebruik best de
Code:
-tag om die dingen duidelijker voor te stellen op dit forum.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan