Toon posts:

External flash file blijft loopen...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een flash file met 3 key frames, daarin roep ik een externe swf aan die afgespeeld wordt in frame 2. Ik wil dat na het afspelen van deze swf de flash file naar z'n derde key frame gaat. Het probleem is echter dat hij blijft loopen.

De code van frame 2 bestaat uit:
code:
1
2
mcDemo1.loadMovie("discussie1.swf");
mcDemo1.gotoAndPlay(1);


Ik heb geprobeerd dit op te lossen met de onderstaande code. Ik maak gebruik van 'onClipEvent(enterFrame)'.
enterFrame The action is triggered continually at the frame rate of the movie clip. The actions associated with the enterFrame clip event are processed before any frame actions that are attached to the affected frames.
De code van de movieclip waarin de swf wordt afgespeeld is:
code:
1
2
3
4
5
6
7
onClipEvent(enterFrame)
{
    if(this._currentframe == this._totalframes)
    {
        _root.gotoAndStop(3);
    }
}


Maar 't werkt niet, want nu gaat hij direct door, waarschijnlijk omdat de swf nog niet geladen is maar wel in z'n laatste frame zit ofzo.

Heeft iemand een idee hoe dit te voorkomen is? Ik ben enigzins wanhopig omdat ik er al weken aan loop te werken... :(

Iedereen bedankt!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

wat als je een stop() toevoegd in frame 2 ? Anders springt door naar frame 3 en van frame 3 weer terug naar af :) Zo krijg je inderdaad een loop zolang je dit niet stopt

Verwijderd

Topicstarter
alienfruit schreef op 02 juni 2004 @ 22:03:
wat als je een stop() toevoegd in frame 2 ? Anders springt door naar frame 3 en van frame 3 weer terug naar af :) Zo krijg je inderdaad een loop zolang je dit niet stopt
Frame 1 heeft een stop, Frame 2 heeft een stop, Frame 3 heeft een stop.

However, de swf die ik importeer in m'n flash wordt in Frame 2 geladen en gespeeld, maar die externe swf blijft loopen. Zodra die 1x gespeeld heeft wil ik door naar Frame 3 van de 'moeder'-flash file en dus niet de externe. Snappie?

  • Liquid
  • Registratie: April 2000
  • Niet online
Ik denk dat je het te moeilijk aanpakt. Kan makkelijker.

Hoofdflash
Frame 2 met stop met action loadMovie("bla.swf",bla_mc);

Externe flash
Frame 1 met play()
Laatste frame met eersteflash.swf._root.gotoAndStop(3); (eigenlijk moet _root.gotoAndStop(3) ook wel werken)

[ Voor 7% gewijzigd door Liquid op 03-06-2004 00:29 ]


Verwijderd

Topicstarter
Liquid schreef op 03 juni 2004 @ 00:28:
Ik denk dat je het te moeilijk aanpakt. Kan makkelijker.

Hoofdflash
Frame 2 met stop met action loadMovie("bla.swf",bla_mc);

Externe flash
Frame 1 met play()
Laatste frame met eersteflash.swf._root.gotoAndStop(3); (eigenlijk moet _root.gotoAndStop(3) ook wel werken)
De externe is een swf, fla en de fla is niet meer beschikbaar (die is er zelfs nooit geweest, daar het een export van een screencapture programma is).

Daarom zou ik graag willen weten hoe ik kan zorgen dat de 'moeder' flash file de swf file na 1x tonen kan unloaden en door kan gaan naar de volgende slide.

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

:) Probeer eens te controleren of het _totalframes != 0 is? Dan is inladen namelijk zo goed als mislukt (of nog niet klaar met laden op het moment dat jij deze control doet...

Verwijderd

Topicstarter
alienfruit schreef op 03 juni 2004 @ 02:26:
:) Probeer eens te controleren of het _totalframes != 0 is? Dan is inladen namelijk zo goed als mislukt (of nog niet klaar met laden op het moment dat jij deze control doet...
Zodra ik de mogelijkheid heb, zal ik het even proberen. Ik denk dat idd iets dergelijks het probleem is. Ik zou je denk nog graag een vraagje willen stellen als ik hiermee verder ga en zou het dus erg op prijs stellen als je hier later nog een keertje komt kijken....

Tnx

  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

een kwestie van de volgende termen op de juiste plek zetten:
• _framesloaded
• _currentframe < _totalframes
• _parent.play()

succes :)

Verwijderd

Topicstarter
tie-rep schreef op 03 juni 2004 @ 11:38:
een kwestie van de volgende termen op de juiste plek zetten:
• _framesloaded
• _currentframe < _totalframes
• _parent.play()

succes :)
tnx, ik heb weer wat input, dat is erg motiverend!

Verwijderd

Topicstarter
YESSSSSSSSSSS

Het is gelukt, de tip van Alienfruit was de oplossing tot het probleem. In plaats van met de standaard frames te werken, heb ik m'n oudere FlashMX 2004 slideshow weer van zolder gehaald en het probleem als volgt opgelost:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
onClipEvent(enterFrame){    
    if(_root.presentation.slide2.mcDemo1._currentframe == _root.presentation.slide2.mcDemo1._totalframes)
    {
        if (this._totalframes != 0)
                {
                    _root.presentation.slide2.gotoNextSlide();
                }
                else
                {
                    this.gotoAndPlay(1);
                }
    }
}


De truc zit hem dus in

code:
1
if (this._totalframes != 0)


Alienfruit (en de anderen!) onwijs bedankt, m'n nachtmerries zijn over!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Oh ik had probleem ook al vorige week :) :) Blij dat ik jou zo meteen kon helpen :D

Verwijderd

Topicstarter
Het enige probleem is nog, dat als ik nu in m'n slide 2 kom en de volgende code true is:
code:
1
2
3
4
5
6
7
8
        if (this._totalframes != 0)
                {
                    _root.presentation.slide2.gotoNextSlide();
                }
                else
                {
                    this.gotoAndPlay(1);
                }


Dan wil hij gaan spelen, maar hij is nog niet klaar met laden. Hij blijft dus stil wachten. Heb jij een idee hoe ik dat kan verhelpen?

Dus ipv this.gotoAndPlay(1); eerst even een korte pauze oid?

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Dit gebruik ik nu:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
checkTime=getTimer()+5000;
stopErmee=false;
 this.onEnterFrame = function() {
          if (this.movieClipName == "") {
                   trace("empty");
          }

          if (movieClip._totalframes != 0 )
        {
               if ((movieClip._currentframe>=movieClip._totalframes)[u] and (this.ignoreMovieComplete == false)[/u]) {
                       stopErmee=true;
               }
          }
        else if(checkTime<=getTimer()){
                stopErmee=true;
          }
        if(stopErmee){
               movieClip.unloadMovie();
                 _root.gotoAndPlay([u]this.jumpFrame[/u] 1 );
        }

 };

Verwijderd

Topicstarter
Ik vraag me af waar je

code:
1
and (this.ignoreMovieComplete == false))


voor gebruikt, ik heb nu dit

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
onClipEvent(enterFrame)
{   
    checkTime=getTimer()+5000;
    stopErmee=false;
    
    if(_root.presentation.slide2.mcDemo1._currentframe == _root.presentation.slide2.mcDemo1._totalframes)
    {
        if (this._totalframes != 0 )
        {
            if (this._currentframe>=this._totalframes)
            {
                this.unloadMovie();
                _root.presentation.slide2.gotoNextSlide();
            }
        }
        else if(checkTime<=getTimer())
        {
            stopErmee=true;
        }
        if(stopErmee)
        {
            this.gotoAndPlay(1);
        }
    }
}

En volgens mij werkt het goed, ik ga nu ff op de productie server proberen...

---
Herstel, het werkt niet op de live server...

M'n code is troep... ff nadenken...

----

This also won't do the trick...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
onClipEvent(enterFrame)
{   
    checkTime=getTimer()+5000;
    stopErmee=false;
    
    if(_root.presentation.slide2.mcDemo1._currentframe == _root.presentation.slide2.mcDemo1._totalframes)
    {
        if (this._totalframes != 0 )
        {
            if (this._currentframe>=this._totalframes)
            {
                this.unloadMovie();
                _root.presentation.slide2.gotoNextSlide();
            }
        }
        else if(checkTime <= getTimer())
        {
            while (true) {
              if (checkTime <= getTimer) {
                stopErmee=true;
              }
            }
        }
        if(stopErmee)
        {
            this.gotoAndPlay(1);
        }
    }
}


Hij is nog steeds niet klaar met laden als ik in deze slide aankom en dus sta je gewoon te kijken naar een stilstaand eerste frame van de externe movie. Als ik nogmaals opnieuw begin, staat hij weer in m'n cache en gaat het prima...

[ Voor 43% gewijzigd door Verwijderd op 04-06-2004 10:03 ]

Pagina: 1