PDA

Volledige versie bekijken : how to: if movieclip stopped > actie (?)


brutus
%Europe/Berlin %400 %2006, 10:36
Beste Flashvrinden,

ik heb een tijd geleden een bedrijfspresentatie gemaakt waar mijn baas op z'n netwerkbijeenkomsten doorheen kan klikken.

Nu wil hij dezelfde presentatie in een lange loop hebben, zodat hij niet hoeft te klikken.

Ik stuit op het volgende probleem:

Ik heb in 1 frame 4 buttons staan die 'onclick' elk een movieclip inladen. Nu moeten deze movies dus achtereenvolgens worden geladen en afgespeeld.
Concreet zit ik met de vraag hoe ik de hoofdmovie na het voltooien van een ingeladen movieclip kan hervatten. Is er een functie mogelijk die wordt aangeroepen zodra een movieclip is beëindigd?

Bijv: if _root.movieclip = stopped, gotoandplay(next);

(dit voorbeeld weerspiegeld waarschijnlijk meteen mijn actionscript-niveau, ik hoop dat ik niet te kort door de bocht ben voor dit forum).

Alvast dank!~ :)

eagle
%Europe/Berlin %403 %2006, 10:41
ik hoop dat ik niet te kort door de bocht ben voor dit forum.
Not at all, not at all.
Je kan gebruik maken van de MovieClipLoader class, deze heeft een method onLoadInit, wanneer deze method dan is aangeroepen kan je de opdracht geven om verder te gaan met je hoofdmovie.

Meer informatie over MovieClipLoader vindt je in de forum, de tutorials en flash help.

brutus
%Europe/Berlin %359 %2006, 09:37
Thanks Eagle,

ik ben nav je bericht op zoek gegaan naar de MovieClipLoader class, echter lijkt dit niet de oplossing. Deze wordt toch aangeroepen voor het laden? niet voor het afspelen?

ik ben nu aan het experimenteren met onderstaand script, deze schijnt het aantal bytes en huidige frame van de externe movie te kunnen uitlezen:


stop();

loadMovie("doorsturen1.swf",myLoader_mc);
// specify how many movies are being loaded consecutively
totalMovies = 4;
i = 0;
this.onEnterFrame = function(){
// checks to ensure movie is loaded
if (myLoader_mc.getBytesLoaded() == myLoader_mc.getBytesTotal()){
// checks to see if the clip has reached the end
if (myLoader_mc._currentframe == myLoader_mc._totalframes){
// if there are no additional movies to load we delete the onEnterFrame function
if (i == totalMovies){
delete this.onEnterFrame
gotoAndPlay(374);
}else{
i++;
loadMovie("doorsturen"+i+".swf",myLoader_mc);
}
}
}
}



Op zich werkt het, behalve dat elke movieclip slechts een 3 a 5 seconden wordt afgespeeld voor de volgende alweer begint! Er gaat dus tóch iets mis bij het bepalen wanneer de movie moet stoppen/nieuwe movie moet starten...

heeft iemand hier misschien ervaringen mee?

brutus
%Europe/Berlin %510 %2006, 13:15
heeft iemand enig idee waarom er per ingeladen movie slechts 3 a 5 seconden worden afgespeeld?

misschien werkt het checken van currentframe t.o.v. totalframes überhaupt niet? Zijn daar alternatieven voor? Of is mijn opmaak niet juist?

ik ben degene die mij hierin kan helpen erg dankbaar. Mijn baas wil zelfs de moeite van derden wel vergoeden!

kinkstar
%Europe/Berlin %538 %2006, 13:55
dit klinkt misschien simple minded maarehm waarom doe je zo moeilijk?

plak gewoon die movies in je hoofdmovie en ga lekker aan de slag met frames (zet op de laatste frame van je movie _root.gotoAndPlay(2) ofzo.... of kent je baas flash ook en wilt hij de fla?

brutus
%Europe/Berlin %550 %2006, 14:12
nou, inderdaad zou dat makkelijker lijken, maar ik heb eveneens geen benul hoe ik .swf files netjes in hetzeflde .fla bestand krijg.. dus het is mij om het even.

nog een andere optie:
ik weet per extern swf hoeveel seconden zij duren. Dus ik kan mogelijk ook een simpel "go to and play after x seconds" implementeren. Hier ga ik ook even naar kijken.

kinkstar
%Europe/Berlin %553 %2006, 14:17
je kan dan ook met een tween werken, kan je gelijk een soort van status balkje eronder maken...

onClipEvent (load) {
import mx.transitions.Tween;

var myTween:Tween = new Tween(this, "_width", none.easeNone, 0, 800, 120, true);
myTween.onMotionFinished = function() {
trace('ik ben klaar');
}
}

dit gooi je op een Mctje en je hebt een statusbalkje die van 0 tot 800 groeit in 120 seconde, zodra deze klaar is geeftie een waarschuwing