PDA

Volledige versie bekijken : onEnterFrame probleempje


Ruby
%Europe/Berlin %657 %2005, 16:46
Hoi,

Ik heb het volgende stukje code dat een fade fucntionaliteit moet geven aan een bepaalde mc.


function fade(mo:String,speed:Number,ref:MovieClip):Void
{
var oldAlpha:Number = ref._alpha;

switch(mo)
{
case "in":
if(oldAlpha < 100)
{
ref.onEnterFrame = function(Void):Void
{
if(this._alpha < 100)
{
this._alpha += speed;
}
else
{ trace("remove onenterframe in");
this.onEnterFrame = null;
this._alpha = 100;
}
}
}
break;
case "out":
if(oldAlpha > 0)
{
ref.onEnterFrame = function(Void):Void
{
if(this._alpha > 0)
{
this._alpha -= speed;
}
else
{ trace("remove onenterframe out");
this.onEnterFrame = null;
this._alpha = 0;
}
}
}
break;
}
}


Nu werkt dit scriptje fijn als ik het de eerste keer aanroep. Door bijv. fade("in",15,mcHolder);
en daarna fade("out",15,mcHolder); alleen als deze functie de tweede keer wordt aangeroepen werkt de onEnterFrame niet meer.

Weet iemand hoe dat komt en hoe dit op te lossen valt?

Alvast bedankt!

Groetjes,

Ruben de Gooijer

Dauntless
%Europe/Berlin %671 %2005, 17:07
alleen als deze functie de tweede keer wordt aangeroepen werkt de onEnterFrame niet meer.
Bedoel je dan eerst fade("in" ) en dan face("out") dat die niet werkt? Bij mij doet hij dat wel namelijk...

Ruby
%Europe/Berlin %680 %2005, 17:20
Oke hier komt de code nog een keer



logoHolder = _root.attachMovie("koopbier_logo","koopbier_logo_c",_root.getNextHighestDepth());
logoHolder._alpha = 0;

_root.button.onRollOver = function(Void):Void
{
if(intID == null)
{
trace("boe");
fade("in",15,logoHolder);
logoHolder._y = 18;
intID = setInterval(removeLogo,2500);
}
}

function removeLogo(Void):Void
{
trace("remove");
fade("out",15,logoHolder);
logoHolder = null;
clearInterval(intID);
intID = null;
}

function fade(mo:String,speed:Number,ref:MovieClip):Void
{
var oldAlpha:Number = ref._alpha;

switch(mo)
{
case "in":
if(oldAlpha < 100)
{
ref.onEnterFrame = function(Void):Void
{
if(this._alpha < 100)
{
this._alpha += speed;
}
else
{ trace("remove onenterframe in");
this.onEnterFrame = null;
this._alpha = 100;
}
}
}
break;
case "out":
if(oldAlpha > 0)
{
ref.onEnterFrame = function(Void):Void
{
if(this._alpha > 0)
{
this._alpha -= speed;
}
else
{ trace("remove onenterframe out");
this.onEnterFrame = null;
this._alpha = 0;
}
}
}
break;
}
}


De eerste keer dat je over de button heen gaat traced hij het volgende :

-----------------------
boe
remove onenterframe in
remove
remove onenterframe out
----------------------------

Als je de tweede keer over de button heen gaat traced hij het volgende:

--------------------------
boe
remove
--------------------------

Hij komt totaal niet in de onEnterFrame functie die wordt aangemaakt in de fade functie.
Dit zorgt er ook weer voor dat het effect niet zichtbaar is.

SaphuA
%Europe/Berlin %689 %2005, 17:33
Je verwijderd de MC logoHolder, terwijl je hem nog wel moet gebruiken?
Volgens mij is dat het probleem :)

Volgende keer maar meteen de hele code posten want kon toen je poste ook het probleem niet vinden ;)