maartenlierop
%Europe/Berlin %422 %2007, 11:08
Hoi!
Ondanks wat ogenschijnlijk bruikbare tips op dit forum kom ik toch niet uit het volgende probleem.
Ik heb een klasse 'kaartview' waarin een MC worden ingelezen wanneer de kaart naar een nieuwe positie schuift. Deze gaat spelen wanneer de kaart op de betreffende positie is aangekomen, en het zou fijn zijn als de gebruiker, terwijl de MC bezig is met afspelen, niet de mogelijkheid heeft met de muis 'weg te bewegen' (want je kan ok kaart ook bewegen door met de muis bij de rand van je scherm te komen). De functie die deze muisbeweging verzorgt moet dus eerst checken of er een MC is ingeldaen, en of deze speelt, of al is gestopt.
Klinkt simpel, maar ik zie niet binnen de MC klasse welke variabele true of false zou worden wanneer een MC wel of niet speelt.
De tweede optie is dat de movieclip zichzelf ontlaad als hij klaar is. Met een REMOVE_FROM_STAGE eventlistener zou je dat moeten kunnen afvangen. Helaas blijit ook dit niet te werken. De Eventlistener wordt al direct na het startten van de MC getriggerd, en wanneer deze, pas veel later ontladen wordt dan wordt hij niet getriggert.
kortom; doe ik nou zo moeilijk of is wat ik wil zo moelijk?
in de kaartview klasse is dit de functie die de MC plaatst (vanuit een Loader)
private function PlaceMC (event:Event):void{
Navigatie = false;
MovieClipCont.addChild(MovieClipContainer);
container.addChild(MovieClipCont);
MovieClipCont.alpha = 1;
MovieClipCont.x = MovieClipCont_x;
MovieClipCont.y = MovieClipCont_y;
var IngeladenMovieClip:* = MovieClipContainer.content;
IngeladenMovieClip.play(); // Ingeldaen MC afspelen
MovieClipContainer.addEventListener(Event.REMOVED_ FROM_STAGE, StartNavigation);
trace("*"+IngeladenMovieClip.VARIABELE);
}
private function StartNavigation(event:Event):void{
trace ("FILMPIE IS KLAAR");
trace("**"+IngeladenMovieClip.currentFrame);
Navigatie = true;
}
public function MoveMap(x_move:int,y_move:int){
if ( Navigatie == true){
if (x_move>0){
if (y_move>0){
.........enzovoorts
Om een MC zichzelf laten de ontladen was al een hele tour, maar met behulp van een util klassetje uit het actionscript 3 cookbook lukt het toch;
import DisplayObjectUtilities;
DisplayObjectUtilities.removeAllChildren(this);
stop();
Zou iemand me willen helpen aan een idee van hoe ik dit gewoon simpel zou kunnen aanpakken? Ik kan me niet voorstellen dat dit echt zo moeilijk moet zijn.
Alvast dank!
Maarten
Ondanks wat ogenschijnlijk bruikbare tips op dit forum kom ik toch niet uit het volgende probleem.
Ik heb een klasse 'kaartview' waarin een MC worden ingelezen wanneer de kaart naar een nieuwe positie schuift. Deze gaat spelen wanneer de kaart op de betreffende positie is aangekomen, en het zou fijn zijn als de gebruiker, terwijl de MC bezig is met afspelen, niet de mogelijkheid heeft met de muis 'weg te bewegen' (want je kan ok kaart ook bewegen door met de muis bij de rand van je scherm te komen). De functie die deze muisbeweging verzorgt moet dus eerst checken of er een MC is ingeldaen, en of deze speelt, of al is gestopt.
Klinkt simpel, maar ik zie niet binnen de MC klasse welke variabele true of false zou worden wanneer een MC wel of niet speelt.
De tweede optie is dat de movieclip zichzelf ontlaad als hij klaar is. Met een REMOVE_FROM_STAGE eventlistener zou je dat moeten kunnen afvangen. Helaas blijit ook dit niet te werken. De Eventlistener wordt al direct na het startten van de MC getriggerd, en wanneer deze, pas veel later ontladen wordt dan wordt hij niet getriggert.
kortom; doe ik nou zo moeilijk of is wat ik wil zo moelijk?
in de kaartview klasse is dit de functie die de MC plaatst (vanuit een Loader)
private function PlaceMC (event:Event):void{
Navigatie = false;
MovieClipCont.addChild(MovieClipContainer);
container.addChild(MovieClipCont);
MovieClipCont.alpha = 1;
MovieClipCont.x = MovieClipCont_x;
MovieClipCont.y = MovieClipCont_y;
var IngeladenMovieClip:* = MovieClipContainer.content;
IngeladenMovieClip.play(); // Ingeldaen MC afspelen
MovieClipContainer.addEventListener(Event.REMOVED_ FROM_STAGE, StartNavigation);
trace("*"+IngeladenMovieClip.VARIABELE);
}
private function StartNavigation(event:Event):void{
trace ("FILMPIE IS KLAAR");
trace("**"+IngeladenMovieClip.currentFrame);
Navigatie = true;
}
public function MoveMap(x_move:int,y_move:int){
if ( Navigatie == true){
if (x_move>0){
if (y_move>0){
.........enzovoorts
Om een MC zichzelf laten de ontladen was al een hele tour, maar met behulp van een util klassetje uit het actionscript 3 cookbook lukt het toch;
import DisplayObjectUtilities;
DisplayObjectUtilities.removeAllChildren(this);
stop();
Zou iemand me willen helpen aan een idee van hoe ik dit gewoon simpel zou kunnen aanpakken? Ik kan me niet voorstellen dat dit echt zo moeilijk moet zijn.
Alvast dank!
Maarten