Toon posts:

Flash js controls + iframe

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey gotters,
ik heb een pop-up window dat ik met dhtml laat zien.

code:
1
2
3
4
5
6
7
<div id="dwindow">
<div id="dwindowcontent">
<iframe id="cframe" name="cframe" src="" width=100% height=100% marginheight="0" marginwidth="0" frameborder="0"></iframe>
</div>
</div>

<a href="javascript:loadwindow(url)">pop-up</a>


Nu wil ik in de pagina +url+ een flash swf file spelen.
Mn popupframe werkt met display:none / display:block
Als ik nu mijn pop-up window met het flash filmpje wil sluiten blijft het filmpje doorspelen en hoor je het geluid. Nu heb ik effe ge-googled en een mooie control functie gevonden:

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
30
<!--
// (C) F. Permadi
function getFlashMovieObject(movieName)
{
  if (this.window.document[movieName])
  {
    return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName];
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}
function StopFlashMovie()
{
    var flashMovie=getFlashMovieObject("simplemovie");
    flashMovie.StopPlay();
}

function PlayFlashMovie()
{
    var flashMovie=getFlashMovieObject("simplemovie");
    flashMovie.Play();
}
//-->


Dit script staat in +url+

Deze werkt mooi in IE + Firefox.
Nu heb ik aan de X(sluiten) knop van het venster de functie StopPlay gehangen, deze sluitknop staat in het parent.document van de iframe. Ik heb dat zo opgelost.

code:
1
2
3
4
function closeit(){
    window.frames[0].StopFlashMovie();
    document.getElementById("dwindow").style.display="none"
}


Dit werkt in internetexplorer maar niet FireFox. Als ik de StopFlashMovie(); direct uit het pop-up-iframe aanroep werkt het wel in FireFox, maar vanuit de X(sluiten) knop (dus het parent.document) werkt het niet.
De debugger geeft aan dat: flashMovie.StopPlay() is not a function.

Hoe kan dit?

  • skabouter
  • Registratie: Oktober 2000
  • Laatst online: 03-02 09:28

skabouter

Skabouter

mocht je alleen geïnteresseerd zijn in start en stop dan bied het volgende script misschien een oplossing

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
function MM_controlShockwave(objStr,x,cmdName,frameNum) { //v3.0
    f = getFlashMovieObject(objStr);
    if(f!=null && f!=undefined){
        if(cmdName=="Play"){
            eval('f.' + cmdName + '();');
        } else {    
            eval('f.' + cmdName);
        }
    }
}

function getFlashMovieObject(movieName){
    if (window.document[movieName]){
        return window.document[movieName];
    }
    if (navigator.appName.indexOf("Microsoft Internet")==-1){
        if (document.embeds && document.embeds[movieName]){
            return document.embeds[movieName];
        }
    }
    else{
        return document.getElementById(movieName);
    }
}

[ Dislect ]


Verwijderd

Topicstarter
Dit script gebruik ik al (zie boven).

Mijn probleem is dat het script niet wil werken vanuit document.parent dmv
window.frames[0].stopmovie();