Volledige versie bekijken : Externe swf afspelen over bestaande animatie
09mido
%Europe/Berlin %588 %2009, 15:07
Ik heb met Flash een productpresentatie gemaakt. Op een gegeven moment wil ik dat deze animatie stopt, en dmv actionscript een externe swf afspeelt (deze wordt dus als het ware over de bestaande animatie heen geladen en getoond). Wanneer deze externe swf klaar is met afspelen, wil ik dat deze van het scherm verdwijnt, en de bestaande animatie weer verder afspeelt op een in actionscript te benoemen frame.
Ik heb het volgende script geplaatst op het frame waar ik wil dat de externe swf begint met afspelen. Dit werkt, de animatie stopt en hieroverheen wordt de externe swf geplaatst en afgespeeld.
stop();
_root.createEmptyMovieClip("container", 1);
loadMovie("untitled.swf", "container");
container._x = 50 ;
container._y = 20 ;
Wat nu nog mist is code die ervoor zorgt dat
a) de externe swf van het scherm verdwijnt wanneer zijn einde bereikt is;
b) de bestaande animatie hierna automatisch verder gaat op een nader te benoemen frame
Ik heb al op verschillende fora gezocht, en ook Google tot op het bot doorzocht, maar ik heb tot op heden nog niets gevonden dat werkt.
Iemand enig idee hoe ik a) en b) kan vertalen naar een script dat werkt in combinatie met wat ik al heb staan?
-ADV-
%Europe/Berlin %600 %2009, 15:24
my_btn.onRelease = function() {
unloadMovie(jouwmovie);
my_mc.gotoAndPlay(2); // waar jij wilt dat je movie heen gaat
}
zoiets?
Groet,
-ADV-
09mido
%Europe/Berlin %610 %2009, 15:38
my_btn.onRelease = function() {
unloadMovie(jouwmovie);
my_mc.gotoAndPlay(2); // waar jij wilt dat je movie heen gaat
}
zoiets?
Groet,
-ADV-
Het probleem is alleen dat die functie moet worden aangeroepen wanneer de externe swf klaar is met afspelen. Hoe vertaal ik dit naar AS? Dit zou dan "my_btn.onRelease" moeten vervangen. In jouw voorbeeld wordt de functie aangeroepen wanneer er op een button geklikt wordt?
09mido
%Europe/Berlin %618 %2009, 15:50
Wat ik er met behulp van jouw script van heb gemaakt is:
stop();
_root.createEmptyMovieClip("container", 1);
loadMovie("untitled.swf", "container");
container._x = 50 ;
container._y = 20 ;
my_btn.onRelease = function() {
unloadMovie("_root.container");
_root.gotoAndPlay(20); // waar jij wilt dat je movie heen gaat
}
Hierbij heb ik een button op de scene geplaatst, en wanneer ik daar op klik verdwijnt de externe swf en speelt de animatie verder op frame 20. Dit klopt dus allemaal.
De functie moet alleen worden aangeroepen wanneer het einde van de externe swf is bereikt, en niet wanneer ik op een button klik.
-ADV-
%Europe/Berlin %629 %2009, 16:06
this.onEnterFrame=function(){
if(jouwSwf._currentframe==jouwSwf._totalframes){
gotoAndPlay(20); // waar jij wilt dat flash heengaat..
}
}
Groet,
-ADV-
09mido
%Europe/Berlin %692 %2009, 17:37
Hij overruled nu als het ware de code die ervoor zorgt dat de movie stopt en de EmptyMovieCLip wordt aangemaakt. Ik zie nu dus geen externe swf meer, maar de movie speelt gewoon af zonder dat er iets gebeurt. Dit omdat hij waarschijnlijk direct de functie aanroept als het frame wordt bereikt (door this.onEnterFrame wellicht?) Waar kan dit aan liggen?
-ADV-
%Europe/Berlin %697 %2009, 17:44
Weet niet precies wat je bedoelt.
Maar zonder even zonder onEnterFrame;
function sluiten(){
if(jouwSwf._currentframe==jouwSwf._totalframes){
gotoAndPlay(20);
}
}
Dan je functie aanroepen in je hoofdtijdlijn.
Groet,
-ADV-
Jan
%Europe/Berlin %698 %2009, 17:45
Gebruik de MovieClipLoader class om die swf te laden.
Voorbeeld, uitleg etc vind je hier:
http://www.flashfocus.nl/forum/showpost.php?p=345219&postcount=5
In de onLoadInit moet je pas die onEnterFrame starten!
Groeten,
Jan
09mido
%Europe/Berlin %438 %2009, 11:31
Bedankt voor de reacties.
Ik heb de MovieClipLoader class gebruikt. Met onderstaande code werkt het perfect.
1. De animatie speelt af
2. De animatie stopt, en de externe swf begint met afspelen
3. Wanneer het eind van deze swf bereikt is, verdwijnt deze van het scherm
4. De animatie speelt weer verder af op een nader te benoemen frame
Zie onderstaand actionscript:
//stopt de animatie
stop();
//maakt een lege movieclip aan om de swf in te laden
this.createEmptyMovieClip("holder_mc", this.getNextHighestDepth());
//maakt een instance van de MovieClipLoader class aan.
var mcl:MovieClipLoader = new MovieClipLoader();
//laadt met behulp van:mcl, de file: testing.swf, in de movieclip:holder_mc (=target)
mcl.loadClip('testing.swf', holder_mc);
this.onEnterFrame=function() {
if (
holder_mc != undefined &&
holder_mc._totalframes > 0 &&
holder_mc._currentframe == holder_mc._totalframes
) {
unloadMovie(holder_mc);
_root.gotoAndPlay(120)
}
}
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.