# Das Parameter Value in Object-Tag von Flash per JavaScript ansprechen



## messmar (5. Februar 2007)

Hallo,

wie kann ich das Value eins Object-Tag für einen Falsh-Film per Javascript ändern, so dass
man per Click auf einen Link den Film austauschen kann.

Mein Versuch sieht flgendermaßen aus, aber es funkz. nicht:

in die Html-Seite:

```
<div id="carRandom">
					<script type="text/javascript" language="JavaScript">
						document.write('<object id="xxxTest" width="283" height="146" data="img/car-mini_1.swf" type="application/x-shockwave-flash">');
						document.write('<param name="movie" value="img/car-mini_1.swf">');
						document.write('</object>'); 
					</script>
				</div>
```

Und in die externe Javascript-Datei Folgendes:

var flashMovie;
function addFlash(movie){

	flashMovie = new Object();
	flashMovie.value = 'img/' + movie;
	document.getElementById('xxxTest').value = flashMovie.value;
}

Vielen Dank und Gruß
Messmar


----------



## messmar (5. Februar 2007)

Hallo,

ich habe es jetzt folgendermaßen gemacht:

Ich erstelle ein Object-Tag anhand JavaScript und da füge den Film-Namen ein.
Aber das Problem ist, dass es jedes Mal beim anklicken des Links, ein neues Object erstell bzw. generiert wird.

```
var flashMovie;
function addFlashPerCreate(film){

  var obj = document.createElement("object");
  var prm = document.createElement("param");
  obj.id = "xxxTest";
  obj.width = "283";
  obj.height = "146";
  obj.data = 'img/' + film;
  obj.type = "application/x-shockwave-flash";
  prm.name = "movie";
  prm.value = 'img/' + film;
  
  obj.appendChild(prm);
  document.getElementById('carRandom').appendChild(obj);
}
```

Ich will aber erreichen, dass das vorhanden Objekt-Tag, einfach einen neuen Flash-Movie bekommt.

Wie kann es aber erreichen, den Wert des Value-Parameter vorher zu löschen und dann anschließend wieder zu generieren aber mit dem neun Film.

Das geht, soweit ich weiß mit DOM, aber ich komme nicht darauf.

Kann Jemand bitte weiter helfen?

Noch Mal vielen Dank und Gruß
Messmar


----------



## messmar (5. Februar 2007)

Hi,

ich habe es jetzt gelöst, aber unter IE, schein zu sein als wäre der Flash-Movie nicht
gefunden.

Meine Lösung:


```
function removeChildNodes(){
	var d = document.getElementById("carRandom"); 
	var d_nested = document.getElementById("xxxTest"); 
	var throwawayNode = d.removeChild(d_nested);
}


function addFlashPerCreate(film){
  
  removeChildNodes();
  
  var obj = document.createElement("object");
  var prm = document.createElement("param");
  obj.id = "xxxTest";
  obj.width = "283";
  obj.height = "146";
  obj.data = 'img/' + film;
  obj.type = "application/x-shockwave-flash";
  prm.name = "movie";
  prm.value = 'img/' + film;
  
  obj.appendChild(prm);
  document.getElementById('carRandom').appendChild(obj);
}
```

Noch eine Idee?

Danke und Gruß
Messmar


----------



## Sven Mintel (5. Februar 2007)

hiermit gehts bei mir:

```
function addFlash(film)
{
  film='img/' + film;
  swfObj=document.getElementById('xxxTest');
  cloneObj=swfObj.cloneNode(false);
  cloneObj.setAttribute('data',film);
  paramObj=document.createElement('param');
  paramObj.setAttribute('name','movie');
  paramObj.setAttribute('value',film);
  cloneObj.appendChild(paramObj);
  swfObj.parentNode.replaceChild(cloneObj,swfObj);
}
```


----------



## messmar (7. Februar 2007)

Hallo Sven

Vielen Dank. Es funkz. mit dieser Funktion ;-)

ich bin schon auf die Idee gekommen, die ganze Sache mit replaceChild und setAttribute zu lösen, aber offen gesagt, ich wusste nicht wo ich genau anfangen soll.

Aber jetzt habe ich wieder was gelernt und die User hier hoffe ich auch.

Aber könntest Du bitte so nett sein und mir die Zeile hier erklären:


```
cloneObj=swfObj.cloneNode(false);
```

Ich habe Alles verstanden (Ist ja auch nicht schwer ;-)) 

Danke und Gruß
Messmar


----------



## messmar (14. Februar 2007)

Hallo Sven,

Ich habe bezüglich der clodeNode( ) Methode in SelfHtml Einiges gefudne und zwar mit Beispielen.

Und damit hat sich meine Frage in dem vorherigen Posting erledigt.

Gruß
Messmar


----------



## Sven Mintel (15. Februar 2007)

Soory...ich hatte deine Nachfrage wohl überlesen :-(


----------



## newnick1967 (7. Mai 2007)

Tach auch, 
ich bin ein Neuling hier, lese allerdings schon geraume Zeit mit. 
Mein Kleinhirn wandert aus: ich kann das Schript, das hier geschrieben steht, nachvollziehen , aber warum t das so bei mir nicht?ignoriert den php-Part, es geht nur ums JS

<?php
$adr=$_GET['adr'];
$artist=$_GET['artist'];
$songtitle=$_GET['songtitle'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
<script language="JavaScript1.2" type="text/javascript">
function addFlash(film)
{
 var film =film+".swf";
  swfObj=document.getElementById('flashfilm');
  cloneObj=swfObj.cloneNode(false);
  cloneObj.setAttribute('data',film);
  paramObj=document.createElement('param');
  paramObj.setAttribute('name','movie');
  paramObj.setAttribute('value',film);
  cloneObj.appendChild(paramObj);
  swfObj.parentNode.replaceChild(cloneObj,swfObj);
}
</script></head>

<body>
<object id="flashfilm" data="xspf_player_slim.swf?song_url=<? echo $adr ?>&song_title=<? echo $artist ?>&player_title=<? echo $songtitle ?>" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
width="90%" height="15" >

                    <param name="allowScriptAccess" value="sameDomain"/>
                    <param name="movie" value="xspf_player_slim.swf?song_url=<? echo $adr ?>&song_title=<? echo $artist ?>&player_title=<? echo $songtitle ?>"/>

                    <param name="quality" value="high"/>
                    <param name="bgcolor" value="#E6E6E6"/>
                    <embed src="xspf_player_slim.swf?song_url=<? echo $adr ?>&song_title=<? echo $artist ?>&player_title=<? echo $songtitle ?>"
    quality="high" bgcolor="#E6E6E6" name="xspf_player" allowscriptaccess="sameDomain"
    type="application/x-shockwave-flash"
    pluginspage="http://www.macromedia.com/go/getflashplayer"
    align="center" height="15" width="90%">
                    </embed>
                  </object>

                  </body>
</html>

der Funktionsauftruf erfolgt über

 javascript:addFlash('xspf_player_slim')

Danke für Eure Hilfe


----------



## rotzlöffeli (7. Mai 2007)

Spielt dein Player denn im Normalfall überhaupt etwas, wenn er per URL *nicht* die nötigen Parameter übergeben bekommt(adr,artist,songtitle)...diese fehlen bei deinem Funktionsaufruf?


----------



## newnick1967 (8. Mai 2007)

Ja, das tut er, bzw. er wird zumindest dargestellt.
Wenn ich den Player aber wie im Script modifizieren will, erscheint er nicht mehr
Gruß, Pitter


----------

