Volledige versie bekijken : menu probleem
dinkstar
%Europe/Berlin %756 %2008, 19:09
Hallo iedereen,
Ik ben bezig om een prototype van een applicatie te bouwen in flash. Nu heb ik een raar probleem. Zodra ik op een button2 druk komt deze naar voren (tabblad idee), wanneer op button3 dan komt deze naar voren. Wanneer ik van btn3 naar btn2 (terug in de timeline) wil, dan werkt het niet meer. Het probleem is geloof ik verdomd makkelijk en kijk er daarom overheen. Hopelijk kan iemand mij verder helpen.
mijn code (eerste frame eigen AS layer) LET OP: AS 2.0
stop();
btn1.onRelease = function(){
gotoAndStop(1);
}
btn2.onRelease = function(){
gotoAndStop(5);
}
btn3.onRelease = function(){
gotoAndStop(10);
}
btn4.onRelease = function(){
gotoAndStop(15);
}
btn5.onRelease = function(){
gotoAndStop(20);
}
Xanthos
%Europe/Berlin %786 %2008, 19:52
Ik vermoed dat het iets te maken heeft met de depths van de buttons. Overal swapDepths() toevoegen zou moeten helpen.
stop();
btn2.onRelease = function(){
this.swapDepths(this.getNextHighestDepth());
gotoAndStop(1);
}
Wat natuurlijk ook kan is:
stop();
var active:MovieClip = btn1;
btn2.onRelease = function ()
{
this.swapDepths(active);
gotoAndStop(1);
}
dinkstar
%Europe/Berlin %792 %2008, 20:01
Hallo Xanthos, bedankt voor je antwoord. Ik heb het gelijk uitgeprobeerd maar het werkt op deze manier niet. Heb je misschien nog een idee?
Midas
%Europe/Berlin %799 %2008, 20:11
Wat je ook eventueel kan doen - als het tenminste mag (http://www.flashfocus.nl/forum/showthread.php?t=41448) - is je actions veranderen per keyframe.
Op keyframe 5 doe je dan de action op button 2 gewoon weg, op keyframe 10 doe je die van button drie weg, enz.
Misschien een oplossing?
Greetz
Midas
Rvdb
%Europe/Berlin %868 %2008, 21:50
Nee dat zou ik afraden, de manier waarop dinkstar het doet is overzichtelijker. waarom heeft 1 button op de tijdlijn eigenlijk 5 frames?
Midas
%Europe/Berlin %871 %2008, 21:54
Nee dat zou ik afraden, de manier waarop dinkstar het doet is overzichtelijker. waarom heeft 1 button op de tijdlijn eigenlijk 5 frames?
Omdat hij het in zijn AS-code had aangegeven dat iedere button over 5 frames beschikt.
Rvdb
%Europe/Berlin %881 %2008, 22:09
Ja dat begrijp ik ook, maar een efficiëntere manier van werken is de animatie die de button krijgt door zijn rollover functie te maken in de mc zelf. om dan vervolgens de mc's op de stage te zetten in 1 frame, dan kun je vanuit 1 frame bijvoorbeeld 10 mc's aanroepen. en dat maakt je tijdlijn wel zo clean ;)
dinkstar
%Europe/Berlin %997 %2008, 00:56
Ja dat begrijp ik ook, maar een efficiëntere manier van werken is de animatie die de button krijgt door zijn rollover functie te maken in de mc zelf. om dan vervolgens de mc's op de stage te zetten in 1 frame, dan kun je vanuit 1 frame bijvoorbeeld 10 mc's aanroepen. en dat maakt je tijdlijn wel zo clean ;)
hey ja heb je helemaal gelijk in... ben een beetje aan het k*tten ermee :) dit werkt nog steeds niet! Ik snap niet waarom, want ik heb het even geprobeerd als in het voorbeeld maargoed :S begin me af te vragen of mijn flash anders werkt hehe :)
Ik heb het bestand ff als bijlage toegevoegd.
PS: let niet op de duitse taal, studeer voor een half jaar in Oostenrijk.
Greets Dink
Joenesy
%Europe/Berlin %611 %2008, 15:41
unexpected file format, of doe ik iets fout?
dinkstar
%Europe/Berlin %717 %2008, 18:12
unexpected file format, of doe ik iets fout?
je doet iets fout ;)
Xanthos
%Europe/Berlin %792 %2008, 20:01
In de bijlage heb ik je probleem op twee manieren opgelost, zoals ik het eerder (bijna :d) had staan. Er ontbraken een paar kleinigheden. Mes excuses!
Eerst heb ik van alle instance behaviours van de buttons, movieclips gemaakt (button selecteren op de stage - properties venster - button naar movieclip veranderen). Blijkbaar werkt swapDepths niet op buttons? Iemand nog ervaring mee?
Daarna heb ik alle keyframes (behalve de eerste) verwijderd uit de layers 'actions 2.0' en 'buttons'. Maakt eigenlijk niet uit, maar ik vind dit overzichterlijker en eenvoudiger. Als je iets wilt veranderen aan je AS, hoef je maar een keer iets te veranderen en het geldt voor heel je tijdlijn. In plaats van het op iedere keyframe te moeten veranderen.
Dus ofwel met getNextHighestDepth(). Dit heeft als gevolg dat de geklikte button steeds bovenaan komt. En de andere in overlappende volgorde blijven zoals ze stonden.
//Voor elke button
btn2.onRelease = function()
{
//Zet deze btn vooraan
this.swapDepths(this._parent.getNextHighestDepth() );
//Doe iets!
gotoAndStop(5);
}
Of door middel van bijhouden welke button er bovenaan staat. Hierbij wordt de geklikte button gewisseld met de button die hiervoor bovenaan stond.
var active:MovieClip = btn1;
//Voor elke button
btn2.onRelease = function ()
{
//Zet deze btn vooraan
this.swapDepths(active);
//Doe iets!
gotoAndStop(5);
//Stockeer in 'active' elke button nu vooraan staat
active = this;
}
En zo doet hij het bij mij. Ik hoop dat je hiermee verder kan.
unexpected file format, of doe ik iets fout?
Dinkstar werkt in een latere versie van flash dan Joenesy :d.
Flash-Creature
%Europe/Berlin %793 %2008, 20:02
Waarom doe je niet een code op elke button?
on(press){
gotoAndPlay("frame")
}
Rassin.NL
%Europe/Berlin %928 %2008, 23:16
Waarom doe je niet een code op elke button?
on(press){
gotoAndPlay("frame")
}
omdat dat per definitie niet "netjes" is. Aanleren altijd op een aparte script layer te programmeren is de betere optie zodat je altijd je script compleet en overzichtelijk hebt/houdt en niet door tig buttons/movieclips etc moet gaan spitten om kleine stukjes script te vinden.
Daarom dus niet.
p.s.
ik deed het vreoger ook op de objecten zelf maar ben daar gauw mee gestopt zogauw een project groter wordt.
dinkstar
%Europe/Berlin %874 %2008, 21:59
hey sorry dat ik lang niets van me heb laten horen, heb het erg druk gehad! Xanthos dank je voor je antwoord! Ik snap nu tenminste waarom het niet ging.
THX
Close topic
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.