[ActionScript3] Verdwijnende MovieClip

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Tha_TE
  • Registratie: Mei 2002
  • Laatst online: 03-09 09:26
Ik ben bezig met een kleine game-engine in Flash, waarbij alles uiteraard programmeerd wordt met AS3.

Ik heb een klasse Vijand die MovieClip extend en vervolgens een klasse MiniBoss die Vijand extend.
MiniBoss heeft zijn eigen animaties die via Flash in de eerste frame van de timeline wordt gezet.
Vijand heeft ook zijn eigen animaties.

Het probleem is als volgt:
Wanneer ik MiniBoss op de stage zet, speelt hij een keer de frames af, en dan gooit Flash de op de stage zijnde MiniBoss weg.

Wanneer ik handmatig in de MiniBoss klasse nextFrame() aanroep, dan speelt hij 1 keer af en blijft hij stopt hij uiteraard bij de laatste frame. Echter als ik prevFrame() aanroep dan gooit Flash MiniBoss weg.

Met weggooien bedoel ik dat het MiniBoss object uit zichzelf (niet via mijn code) Event.REMOVED dispatcht.

Maar wanneer ik gewoon in Vijand de animatie neerzet en Vijand op de stage zet, dan zijn er geen problemen. Wanneer ik in de library geen MiniBoss heb aangemaakt en dus direct de animatie van Vijand, die wel in de library zit, wordt gebruikt. Dan ... gooit Flash hem ook gewoon weg na 1x volledig afspelen.

Korte samenvatting van het probleem:
Flash gooit MiniBoss weg wanneer er een "vorige" frame wordt afgespeeld in MiniBoss.

Acties:
  • 0 Henk 'm!

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Ik kan je niet helemaal volgen.

Wat gebeurt er als je goToAndPlay(1) in het laatste frame van de animatie zet?

TabCinema : NiftySplit


Acties:
  • 0 Henk 'm!

  • JefSnare
  • Registratie: Augustus 2007
  • Laatst online: 09-11-2020
Je wilt dus dat "MiniBoss" bij het vorige frame zichtbaar blijft? Dan zou ik ^^ toepassen...

Twitter Flickr


Acties:
  • 0 Henk 'm!

  • Tha_TE
  • Registratie: Mei 2002
  • Laatst online: 03-09 09:26
Bozozo schreef op zondag 15 november 2009 @ 17:04:
Ik kan je niet helemaal volgen.

Wat gebeurt er als je goToAndPlay(1) in het laatste frame van de animatie zet?
Dan dispatched hij uit zichzelf "Event.REMOVE" om een nog onbekende reden.

Ik had een Event.REMOVE geadd bij de MiniBoss dat dan de level eindigt.
De Event.REMOVE was dan ook direct het probleem. Nu heb is dit veranderd naar
Event.REMOVED_FROM_STAGE.

Definitie:
"Dispatched when a display object is about to be removed from the display list. Two methods of the DisplayObjectContainer class generate this event: removeChild() and removeChildAt().

Echter hij wordt nergens weggegooid en denk ik dat dit een bug is in Flash.

Acties:
  • 0 Henk 'm!

  • Tha_TE
  • Registratie: Mei 2002
  • Laatst online: 03-09 09:26
JefSnare schreef op zondag 15 november 2009 @ 17:47:
Je wilt dus dat "MiniBoss" bij het vorige frame zichtbaar blijft? Dan zou ik ^^ toepassen...
Nee, dat hij niet uit zichzelf Event.REMOVED dispatcht, maar dat ligt aan Adobe, of ik moet bij elke MovieClip eerst hun EventListeners weghalen en dan mijn eigen ertussenstoppen :p