Toon posts:

[flashmx] button stay down probleem in menu

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het laatste redmiddel, na Google, Flashkit, Actionscript.org, en Macromedia Forums te hebben doorgespit heb ik hier nog geen oplossing voor gevonden. Ik ben dan ook geen die-hard actionscripter die dit even uit zijn pen zuigt. Hopelijk kan ik hier wat tips krijgen.

Mijn probleem: Ik wil graag het volgende maken:
Afbeeldingslocatie: http://www.harings.com/got/menu.gif

Wat gebeurt er hier?
Je klikt op een nummer, dan laadt er een foto in met bijpassende tekst (uit een php file). Ik wil graag dat de on mouse over state van de button blijft staan, maar de button moet weer normaal functioneren als je op een ander nummer klikt.

Nu zou ik dat "vroeger" maken door een button een MC te laten aansturen die dan naar een label "button_on" oid gaat. En daarna als je op een ander nummer klikt dit weer ongedaan zou maken. Maar daar het menu nu zo uitgebreid is (of moet gaan worden in de toekomst), is dat bijna ondoenlijk en ook niet makkelijk om er even een nummertje bij te plaatsen.

Hoe pak ik dit aan?

Verwijderd

Topicstarter
*schup*

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Waarom gebruik je daar geen globale variabele voor. Hierin zet je de knop die de oppressed state zit. Bij iedere volgende knop-click, check je die var en zet je het object weer terug?

Of is dit niet je probleem?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
maar dan zit ik toch eerst voor elke button een global variable te maken en die allemaal checken als ik op maar 1 knopje druk? Of begrijp ik je verkeerd?

  • roeni1
  • Registratie: November 2003
  • Laatst online: 17-05 12:33
Wat je kan doen is om 1 functie te maken.

On press dan kijkt ie naar de knopnaam (als je daar een nummer gebruikt) en je zorgt dat je alleen je nummer overhoud.
Met dat nummer kan je dan je foto en evt. txt laden.
je zorgt dan ook meteen dat de knop met dat nummer de overstatus houd.
(dus bv die knop naar frame 2 gaan of zet dat vierkantje op visible oid)
en de rest van de knoppen met een loopje op niet visible/ naar frame 1 gaan.

Ik hoop dat je eruit komt anders...... vragen.

Verwijderd

Topicstarter
ik snap het wel ongeveer,.. maar HOE??
stel ik heb 20 knoppen genummerd 01-20

ik druk nr 14 in, dan zou die alles lager dan 14 en hoger dan 14 moeten zetten naar framelabel "OFF" en knop nr 14 naar "ON"

Maar zo zit ik nog steeds voor elk knopje een aparte MC aan te sturen, terwijl ik eigenlijk wil dat ik 1 MC heb met 2 states, die ik in 20 knopjes kan gebruiken.

Het inladen van de foto en tekst is geen probleem, daar heb ik dan 20 verschillende buttons voor (allemaal kopien van 1 button met ander acties)

/me moet echt een cursus as gaan volgen....

[ Voor 4% gewijzigd door Verwijderd op 13-08-2004 13:11 ]


  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

Heel summiere beschrijving:

Dit is op te lossen met een combinatie van Factory en Observer/Observable design pattern. In het kort komt het er op neer dat je een Factory creeert die deze buttons creert. Iedere button is een zogenaamde Subject die zich registreert bij zijn Observer. Wanneer een Subject verandert, laat hij dat weten aan zijn Observer, die op zijn beurt weer actie onderneemt.

In concrete Flash taal betekent dat je een master Movieclip hebt, die weer genestte movieclips bevat, die zogenaamde buttons representeren. Bij een click event van een button, laat deze dat weten aan een zogenaamde Observer Movieclip ( kan een parent movieclip zijn of een aparte movieclip ) die op zijn beurt weer aan de andere buttons laat weten dat zij van staat moeten veranderen. Dit is niet een stricte implementatie van de design patterns, maar wel de meest logische en laagdrempelige...

HTH :)

"You're only as good, as what you did last week."


Verwijderd

Topicstarter
/me slikt

Zijn hier concrete voorbeelden van ergens online?
Kan er namelijk niet echt veel over vinden,.... in MX help functie niet en op MMsite
maar een enkel artikeltje.

[ Voor 4% gewijzigd door Verwijderd op 13-08-2004 15:12 ]


Verwijderd

Hoi,

De manier van oh,when is een goede oplossing, maar gaat in jou geval mischien te ver (gezien je a.s. kennis). Je kan ook het volgende doen:

klik op btn 14 zet een global variabele clicked op 14
klik je op btn 15, dan kan je via de variabele klikt achterhalen wat de laatst geklikte btn is = 14.

dus: iedere keer als er een btn wordt geklikt dan kijk je naar de waarde van variabele clicked en zet je in de clip met die waarde die de timeline op "off", vervolgens geef je clicked de waarde van de "nieuwe" geklikte waarde en de timeline op "on". Zo hoef je niet alle clipjes te controleren. Dit lijkt me eenvoudig te realiseren door je ;)

  • roeni1
  • Registratie: November 2003
  • Laatst online: 17-05 12:33
je kan ook alle knoppen veranderen en daarna de knop waar je op geklikt hebt veranderen in wat ie moet zijn. Niet super efficient maar het werkt wel.

Verwijderd

Verwijderd schreef op 13 augustus 2004 @ 15:11:
/me slikt

Zijn hier concrete voorbeelden van ergens online?
Kan er namelijk niet echt veel over vinden,.... in MX help functie niet en op MMsite
maar een enkel artikeltje.
Snap je het observer pattern wat Oh When je voorlegde? :) Wat Oh When uitlegde is inderdaad de juiste omschrijving van het pattern maar ik kan me voorstellen dat iemand zonder kennis van het pattern moeite heeft om het te snappen.

Of is het de technische uitwerking van het pattern waar je in de moeilijkheden komt?

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 20-05 08:42

XangadiX

trepanatie is zóó kinderachtig

je kunt het ook omdraaien en van iedere andere button de observer maken en van de 'actieve' button de observee maken (beetje big brother maar toch), als je de buttons dynamisch genereert is er geen probleem met belachelijk veel regels code hoeven schrijven. Wat je doet is iedere klik op een willekeurige button alle andere buttons inactief maken.

zelfde oplossing, ietsje andere uitvoering

Het is feitelijk hetzelfde als wat doctor Anders zei, maar dan zonder extra variable (knoppen houden elkaar in de gaten, vandaar het big-brother grapje ;) )

[ Voor 19% gewijzigd door XangadiX op 15-08-2004 00:15 ]

Stoer; Marduq


Verwijderd

Topicstarter
Verwijderd schreef op 14 augustus 2004 @ 23:04:
[...]


Snap je het observer pattern wat Oh When je voorlegde? :) Wat Oh When uitlegde is inderdaad de juiste omschrijving van het pattern maar ik kan me voorstellen dat iemand zonder kennis van het pattern moeite heeft om het te snappen.

Of is het de technische uitwerking van het pattern waar je in de moeilijkheden komt?
Ik snap het idd niet helemaal, ik heb ook (nog) geen kennis van het pattern, vandaar ook mijn vraag of er een simpele tutorial cq voorbeeld ergens staat waar dit een beetje duidelijk wordt uitgelegd. Qua as voel ik me nu een echte n00b :P

ik heb dit linkje nog wel gevonden: klik

/me gaat morgen maar eens een bezoekje brengen aan Scheltema voor een boekie

[ Voor 8% gewijzigd door Verwijderd op 15-08-2004 09:32 ]


Verwijderd

Wat je moet doen is met listeners werken. Listeners zijn eenvoudiger dan zij in eerste instantie lijken. Van de movieclip waarin alle buttons zijn opgenomen maak je een broadcaster. Wanneer er op een knop wordt gedrukt zeg je tegen deze movieclip dat hij een broadcast moet sturen. Dit houdt in dat hij alle objecten die "geabbonemeert" zijn op hem een functie laat uitvoeren. Je "abbonemeert" dus alle knoppen op die movieclip. Wanneer je dan ook nog de naam van de ingedrukte movieclip meestuurt is het een eitje om alle knoppen behalve de ingedrukte omhoog te laten komen.

snap je het?
Pagina: 1