Volledige versie bekijken : Button AS probleem
janj
%Europe/Berlin %473 %2008, 12:21
Hallo,
Bijgevoegd: button_problem.fla
Ik ben op dit moment bezig met het maken van een portfolio maar ik zit al een tijdje met het volgende probleem. In het portfolio staat een knop webdesign en wanneer de muis de knop raakt schuift deze uit. Wanneer dit gedaan is komt de content te voorschijn. Nu is het zo dat de hele movieclip afgespeeld wordt en dit is niet de bedoeling. Stop(); werkt niet.
Dus wanneer de de eerste content zichtbaar wordt moet de button stoppen en pas verder gaan als de gebruiker op volgende klikt.
Kan iemand me hiermee helpen? In iedergeval alvast bedankt. Voor het gemak heb ik de .FLA bijgevoegd.
Groeten,
JanJ
Dauntless
%Europe/Berlin %480 %2008, 12:32
Je .fla doet m'n Flash constant crashen ... Kan je hem misschien nog eens uploaden ?
janj
%Europe/Berlin %484 %2008, 12:37
Ja bij mij ook, ik heb hem opnieuw geupload, maar nu in zijn orginele extensie van cs3. Mocht je die niet kunnen openen, dan zal ik hem omzetten indien hij niet vast loopt.
Dauntless
%Europe/Berlin %495 %2008, 12:53
Nu is hij ok.
Aangezien je in de onEnterFrame blijft zeggen dat hij naar de volgende Frame moet gaan, zal hij de stop() inderdaad negeren.
Oplossing:
- Maak een variabele aan die bijhoudt of hij moet stoppen (var doStop:Boolean = false);
- Pas je if aan zodat hij enkel naar de volgende frame gaat, indien ook doStop op false staat:
_root.webdesign_btn_knop.onRollOver = function() {
this.onEnterFrame = function() {
if(!doStop)
this.nextFrame();
};
};
- Zet doStop op true wanneer hij moet stoppen (dus waar je nu het stop();) commando hebt.
janj
%Europe/Berlin %502 %2008, 13:03
Super het werkt perfect. Bedankt voor je snelle hulp.
Groeten,
Jan
janj
%Europe/Berlin %526 %2008, 13:38
Kan het trouwens zo zijn dat door de booleans de knoppen vorige en volgende niet werken?
Deze code heb ik: ook geprobeerd zonder gotoAndStop.
on (release) {
gotoAndStop.nextFrame();
}
Deze code heb ik eerder gebruikt maar ik snap niet waarom die nu niet werkt.
Dauntless
%Europe/Berlin %538 %2008, 13:55
Hmm, nu ik er over nadenk is er eigenlijk wel een mooiere manier:
//Allereerst moeten we de MovieClip stoppen, want anders blijft ie steeds zijn timeline afspelen:
this.stop();
// En dan geven we hem een actie mee voor als de gebruiker/bezoeker er met de muis overheen gaat (animatie afspelen)
this.onRollOver = function() {
this.onEnterFrame = function() {
this.nextFrame();
};
};
// En de actie voor als diegene er met de muis van de MC-button af gaat (terugspoelen)
this.onRollOut = function() {
this.onEnterFrame = function() {
this.prevFrame();
if (this._currentframe == 1) {
delete this.onEnterFrame;
}
};
};
En bij de stop:
delete this.onEnterFrame;
(Je moet ook even het gat dichten tussen je button en de movieclip die er onderstaat, anders krijg je een valse onRollOver)
Maar dan zit je nog altijd met het andere probleem: Omdat je een onRollOver op je movieclip hebt staan, krijg je geen mouseEvents meer van de childeren.
Een volledige uitleg:
http://senocular.com/flash/tutorials/buttoncapturing/
Daarnaast is het mooier om ook de volgende en vorige buttons up te daten:
btnVolgende.onRelease = function()
{
this.nextFrame(); // gotoAndStop.nextFrame(); slaat ook op niets ;)
}
Vergeet uiteraard niet om de buttons de juiste instancenamen te geven.
janj
%Europe/Berlin %582 %2008, 14:58
Allereerst bedankt voor uw antwoord. Helaas werkt het niet zoals ik wil. Ik ben nu alweer even aan het proberen en heb de link, die je gegeven hebt bekeken maar toch gaat het niet goed. Ik heb de wit ruimte tussen de knop en de content opgevuld en dit is nu prima. Het enige probleem is nog dat ik de knop niet werkend krijg.
Is het zo dat ik een MC moet maken van de volgende en vorige buttons? en moet ik dan de code van de button op de hoofdtijdlijn zetten of mag dit in de movieclip?
Alvast bedankt...
Dauntless
%Europe/Berlin %585 %2008, 15:02
De code die ik gaf (btnVolgende.onRe...) moet op dezelfde tijdlijn als waar de button zelf op staat. En zoals in het artikel beschreven staat, moet de onRollOver dus op een movieclip komen die onder je buttons ligt.
Als het niet werkt, zet je .fla dan nog eens online :).
janj
%Europe/Berlin %591 %2008, 15:11
Jij bent snel :D
Alle informatie wordt me teveel denk ik :P, begin er nu een beetje een rommeltje van te maken. Als je nog even zou willen kijken naar wat ik fout doe, graag.. mijn dank is zeer groot.
Bijlage: button_problem.fla
Dauntless
%Europe/Berlin %601 %2008, 15:26
En zoals in het artikel beschreven staat, moet de onRollOver dus op een movieclip komen die onder je buttons ligt.En dat is dus wat je nog verkeerd hebt:
- Maak een nieuwe layer aan
- Maak daar een animatie die gelijk loopt met animatie van je button
- Zet op die movieclip de onRollOver. Hierdoor komt hij onder de onRelease terecht en zal die ook getriggered worden.
Andere oplossingen staan beschreven in de link die ik gaf.
janj
%Europe/Berlin %676 %2008, 17:13
Grr... twee uren verder en heel wat gepiel maar het wil gewoon niet lukken met die laag. Wat ik ook doe de knoppen kunnen niet aangeklikt worden.
Wanneer ik een movieclip aanmaak met een gelijke animatie blijft de één doorlopen wanneer de scroll terug gaat. Daarnaast heb ik de code op de movieclip gezet, maar dit werkt nog niet.
Ik heb mijn nieuwste versie toegevoegd en ik zou het op prijs stellen als er nog eenmaal naar gekeken kan worden.
janj
%Europe/Berlin %400 %2008, 10:36
Een nieuwe dag nieuwe kansen zeggen ze, weer de vorige posts erbij gehaald en overnieuw begonnen, elke keer loop ik vast bij de mc die gelijk moet lopen met de animatie van de rollover.
Ik heb de frames van de animatie gekopieerd en deze in een movieclip gezet. De movieclip heb ik weer op de tijdlijne van de button onder de animatie van de rollover geplaatst. Op de movieclip heb ik de volgende as gezet:
this.onRollOver = function() {
this.onEnterFrame = function() {
this.nextFrame();
};
};
Daarnaast heb ik de knoppen de juiste code meegegeven. Wat doe ik nog verkeerd?
Groeten,
JanJ
janj
%Europe/Berlin %451 %2008, 11:49
Niemand meer tips of suggesties?
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.