[Flash] Flash aanroepen met javascript

Pagina: 1
Acties:

  • mark_gl
  • Registratie: September 2001
  • Laatst online: 21-06 19:53
Ik heb dit gevonden op de macromedia site:

http://www.macromedia.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html

Nu staat er dit
var movie = window.document.movie
als ik movie alert dan zegt de browser undefined

Hoe krijg in nu de var movie wel gevuld???
Ik heb de tags id en name in het object en embed vermeld

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 03-02 22:51

Hangloozz

{ @$%&# }

ff een stukje uit een script waar het aanspreken van de movie instaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
if(document.getElementByID){
        
            window.document.getElementById('movie').SetVariable("var","value");
        
        }else if(document.all){
        
            window.document.movie.SetVariable("var","value");
        
        }else if(document.layers){
        
            window.document.embeds['movie'].SetVariable("var","value");
        
        }

zoals je ziet geldt voor een aantal browsers een andere aanpak om het movie-object te bereiken.

movie is de id/name van de movie(duh!)
var = de variabele die je in je flashmovie gebruikt
value = de waarde van de variabele

HTH :)

www.jurgroessen.nl


  • mark_gl
  • Registratie: September 2001
  • Laatst online: 21-06 19:53
Als ik dat doe krijg ik steeds de melding

movie is geen object !! als ik movie = .......

  • cjs
  • Registratie: Maart 2001
  • Niet online

cjs

Macromedian

Je moet je flashmovie wel een 'naam' geven, zodat je javascript de movie kan aanspreken. Zie: http://www.macromedia.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_05.html
code:
1
2
3
4
5
6
7
8
9
<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
CODEBASE="http://active.macromedia.com/flash5/cabs/swflash.cab#version=5,0,0,0"
ID=#moviename# WIDTH=100% HEIGHT=100%> 
<PARAM NAME="movie" VALUE="#filename#.swf"> 
<PARAM NAME="play" VALUE="false"> 
<PARAM NAME="quality" VALUE="high"> 
<EMBED NAME=#moviename# SRC=#filename#.swf WIDTH=100% HEIGHT=100% PLAY=false
SWLIVECONNECT=true QUALITY=high>
</OBJECT>

#moviename# = de naam waarmee je javascript de movie kan aanspreken.
#filename# = de bestandsnaam van de swf-file

Gemiddelde Nederlanders zijn maar halve Nederlanders.


  • mark_gl
  • Registratie: September 2001
  • Laatst online: 21-06 19:53
window.document.embeds.movie had no properties zegt ie in netscape

internet explorer werkt al

  • cjs
  • Registratie: Maart 2001
  • Niet online

cjs

Macromedian

Sorry, ik had de laatste regel in je post niet goed gelezen. |:(

http://www.macromedia.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_06.html

"Note: None of these methods are available until after the Flash Player is loaded by the browser. If you attempt to control the Flash Player with these methods before the Flash Player is loaded, you will receive error messages indicating that the Flash Player doesn't have a property defined. To avoid this problem, have your Flash Player movie send an FSCommand from frame 1 in the movie. As soon as the Flash Player and movie load, the FSCommand is passed to your script and you can make a function call to execute any method."

Het zou kunnen dat het in Netscape wat langer duurt eer de player geladen is?

Ik weet niet wanneer en hoe je precies de movie aanspreekt met jouw script. Zou je de betreffende html + swf even online kunnen zetten? Dan zien we denk ik wat sneller wat er precies mis gaat.

Gemiddelde Nederlanders zijn maar halve Nederlanders.


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 03-02 22:51

Hangloozz

{ @$%&# }

Op donderdag 28 februari 2002 14:42 schreef mark_gl het volgende:
window.document.embeds.movie had no properties zegt ie in netscape
sorry hoor maar dit is niet de syntax die ik als voorbeeld gaf..
Kijk nog es goed.

Ik weet zeker dat het werkt want onze site maakt er gebruik van NN4.x koert er ('ns een keer) niet over.

www.jurgroessen.nl


  • mark_gl
  • Registratie: September 2001
  • Laatst online: 21-06 19:53
Dit is mijn broncode:

<html>

<head>
<title>Test</title>
<script language="Javascript">
function flashcontrole()
{
if(document.getElementByID){
window.document.getElementById('moview').GotoFrame(9);
}else if(document.all){
window.document.moview.GotoFrame(9);
}else if(document.layers){
window.document.embeds["moview"].GotoFrame(9);
}
}
</script>
</head>

<body onLoad="flashcontrole();">

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
WIDTH=240 HEIGHT=120 id="moview"><PARAM NAME=movie VALUE="images/hoofdnavigatie.swf"><PARAM NAME=quality VALUE=high><PARAM NAME=bgcolor VALUE=#FFFFFF><EMBED src="images/hoofdnavigatie.swf" quality=high bgcolor=#FFFFFF WIDTH=240 HEIGHT=120 NAME="moview" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED></OBJECT>

</body>

</html>

  • cjs
  • Registratie: Maart 2001
  • Niet online

cjs

Macromedian

Ik zie hier eigenlijk meteen twee dingen:

Je probeert de flashmovie al aan te spreken bij het body.onload-event. Grote kans dat IE ook gaat klagen wanneer je de pagina online gaat testen. (grotere kans dat het html-gedeelte van de pagina al opgebouwd is, voordat de flashplugin volledig is geïnitialiseerd.)

Wat helemaal gedoemd is om mis te gaan, is die 'GotoFrame(9)'. De kans dat er al 9 frames van je flashmovie geladen zijn op het moment van het onload-event is minimaal.

Ik weet niet of je dezelfde swf op meerdere plaatsen op de betreffende site gebruikt? Het is anders toch logischer om binnen flash zelf te zorgen dat deze naar het goede frame gaat.

Een variant daarop, als je de swf toch op verschillende plaatsen gebruikt, is om een variabele te setten in de Object- en Embed-tags van de movie. In de movie kun je aan de hand van deze variabele dan naar het juiste frame gaan. Deze methode is ook nog eens crossbrowser/platform. :)
code:
1
2
3
4
5
6
7
8
9
10
11
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
WIDTH=240 HEIGHT=120 id="moview">
<PARAM NAME=movie 
VALUE="images/hoofdnavigatie.swf?mijnVariabele=iets">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src="images/hoofdnavigatie.swf?mijnVariabele=iets" 
quality=high bgcolor=#FFFFFF WIDTH=240 HEIGHT=120 NAME="moview" TYPE="application/x-shockwave-flash" 
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
</EMBED></OBJECT>

Gemiddelde Nederlanders zijn maar halve Nederlanders.

Pagina: 1