Toon posts:

[flash 5] checken/inladen movieclip

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben aan het werk aan een cirkelvormig flashding, zie (40 Kb swf file):
http://www.circuscompany.com/test/test_beta2.html

Ik wil graag 4 verschillende animaties gebruiken voor de 4 menu opties. Ik zou graag de top-taartpunt als start voor elke animatie gebruiken, dus na een menu-selectie moet de actieve movieclip eerst worden gesloten, zodat alleen de top blijft staan.

Ik ben bezig nu om het dropdown menu te maken, maar ik kom er niet uit hoe ik kan checken of de MC al actief is wanneer er op een menu-item wordt geklikt die naar die actieve MC (zodat de sluit-animatie achterwege kan blijven)wijst, en zo niet, hoe te checken welke MC dan wel actief is, zodat de correcte sluit-animatie kan worden gestart.

Klinkt vast vaag, komt hierop neer: 4 punten van een waaier, 4 menu-opties, na klik moet waaier eerst dicht, dan weer open, maar niet wanneer je klikt op de MC waar je al in zit.

ik kom er ff niet uit |:(

  • KillR-B
  • Registratie: Mei 2002
  • Laatst online: 20-01 20:49
De actieve button steeds onthouden:

code:
1
2
3
4
5
if (btnActive != btnCaller) {
  btnActive.sluitAnimatie();
  activeButton = btnCaller;
  btnCaller.openAnimatie();
}


Ik zie trouwens dat je een foto van me gebruikt, die met die bril en de krant :+

Verwijderd

De code van KillR-B is misschien logischer voor jouw geval, maar als je gewoon AS op de mc zelf zou willen zetten kan het ook zo (vanaf Flash 6 trouwens, ivm die events op mc):

op button menu 1
code:
1
2
3
4
5
6
on(release) {
  if(menuActive != 1) {
    menuActive = 1;
    whatever
  }
}

op button menu2
code:
1
2
3
4
5
6
on(release) {
  if(menuActive != 2) {
    menuActive = 2;
    whatever
  }
}

etc.

Verwijderd

Topicstarter
KillR-B schreef op 01 januari 2004 @ 22:12:
De actieve button steeds onthouden:

code:
1
2
3
4
5
if (btnActive != btnCaller) {
  btnActive.sluitAnimatie();
  activeButton = btnCaller;
  btnCaller.openAnimatie();
}


Ik zie trouwens dat je een foto van me gebruikt, die met die bril en de krant :+
bedankt voor je button-suggestie, handige tip, maar ik denk dat dit niet helemaal is wat ik bedoel.
Misschien is een schema van de MC's (+ labels) wat duidelijker:

Afbeeldingslocatie: http://www.circuscompany.com/test/schema.jpg

Dit zijn dus 5 movieclips, de entree MC is zichtbaar op die url hierboven.
Kies je in de entree-mc voor bijv. C3 dan moet eerst framelabel: Entree - End worden gespeeld, dan C-start en dan pas c3. De keuze voor c3 moet dus in een variabele die pas na C-start wordt ge-execute. Zit je echter in C1 (of c2 of..) en kies je C3 dan kan je direct naar C3, nog een keer die animatie is irritant.

Hopelijk maak ik hiermee duidelijk wat ik wil maken, de logica om dit ook daadwerkelijk te laten werken gaat mij boven mijn (designer's-)pet.

nogmaals bedankt voor suggesties e.d.

ps. en grappig dat ik jouw foto van die gratis stock-foto site heb afgehaald, mooie foto, had precies die corporate uitstraling die ik zocht.

Verwijderd

dan wordt het toch

op button menu A1
code:
1
2
3
4
5
6
7
8
on(release) {
  if(menuActive > 20) {
    speel menuActive End;
    menuActive = 11;
    speel A;
    speel menuActive;
  }
}

op button menu A2
code:
1
2
3
4
5
6
7
8
on(release) {
  if(menuActive > 20) {
    speel menuActive End;
    menuActive = 12;
    speel A;
    speel menuActive;
  }
}

op button menu B1
code:
1
2
3
4
5
6
7
8
on(release) {
  if((menuActive < 20) && (menuActive > 30)) {
    speel menuActive End;
    menuActive = 21;
    speel B;
    speel menuActive
  }
}

etc.

(op deze manier is het evt. ook wat makkelijker uit te breiden (A=11-20, B=21-30, etc)

ziet er een beetje omslachtig uit misschien, het kan waarschijnlijk wel sterker vereenvoudigd worden, maar dit is het idee :)

Verwijderd

Topicstarter
Verwijderd schreef op 02 januari 2004 @ 14:27:
dan wordt het toch

op button menu A1
code:
1
2
3
4
5
6
7
8
on(release) {
  if(menuActive > 20) {
    speel menuActive End;
    menuActive = 11;
    speel A;
    speel menuActive;
  }
}

op button menu A2
code:
1
2
3
4
5
6
7
8
on(release) {
  if(menuActive > 20) {
    speel menuActive End;
    menuActive = 12;
    speel A;
    speel menuActive;
  }
}

op button menu B1
code:
1
2
3
4
5
6
7
8
on(release) {
  if((menuActive < 20) && (menuActive > 30)) {
    speel menuActive End;
    menuActive = 21;
    speel B;
    speel menuActive
  }
}

etc.

(op deze manier is het evt. ook wat makkelijker uit te breiden (A=11-20, B=21-30, etc)

ziet er een beetje omslachtig uit misschien, het kan waarschijnlijk wel sterker vereenvoudigd worden, maar dit is het idee :)
bedankt voor je reactie. Misschien ben ik blond hoor, maar dit snap ik niet. Is menuActive iets uit flash mx ofzo, want die heb ik nog nooit gezien. Of is dat iets wat ik eerst moet definieren ? Ik ben nogal een programmeer-noob dusse, dat kan het ook zijn :)
Dit probleem hangt voor mij rond: 'wat is de actieve MC ?', ik begrijp uit jouw oplossing dat je die gewoon kan oproepen met menuActive, maar volgens mij niet in flash 5. Helaas heb ik flash mx niet (en misschien zou ik het ook wel niet inzetten nog, ivm plugin penetratie), dus proberen of dit daarin werkt kan ik niet.

Verwijderd

@TS: nee het is slechts ter illustratie, voor de idee van het actionscript op elke button

menuActive is geen functie o.i.d., ik gebruik het slechts als variabele om bij te houden welke button/menu actief is.

speel B zou je dan kunnen vervangen door menuB.gotoAndPlay(1) en speel menuActive zou je dan kunnen vervangen door this.gotoAndPlay(1) o.i.d.

Verwijderd

Topicstarter
ok, ik dacht er niet goed genoeg over na, ik begrijp nu (pas) de bedoeling .. slim .. ipv bijhouden welke movie actief is, gewoon bijhouden welke button actief is, dan ben je er ook.

Ik ga ff rommelen .. thnx !

Verwijderd

euh ja, maar mijn idee is wel gebaseerd op actionscript (on(release)) op een mc (dus de mc kan ook button-eigenschappen hebben zeg maar), en daar is Flash 6 voor nodig..

maar check dit maar eens :)

edit:

of eigenlijk deze

[ Voor 19% gewijzigd door Verwijderd op 02-01-2004 18:46 ]

Pagina: 1