PDA

Volledige versie bekijken : Flash IN javascript verwerken


Quevi
%Europe/Berlin %870 %2005, 21:52
Hoi,

Ik heb onderstaand Javascript. Op de plaats waar HIER staat zou ik een flash-bestand (.swf) willen plaatsen. Hoe doe ik dit?

<script type="text/javascript">
var backgr1="profiel/images/profiel1-2.jpg"
var backgr2="profiel/images/profiel2-2.jpg"
var backgr3="profiel/images/profiel3-2.jpg"

var cur=Math.round(6*Math.random())
if (cur<=1)
backgr = backgr1
else if (cur<=4)
backgr = backgr2
else
backgr = backgr3
document.write('<table align="center" width="750" height="513" border="0" background="'+backgr+'"><tr><td>HIER</td></tr></table>')
</script>

Dit is het .swf-je:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="250" height="500">
<param name="movie" value="portfolio-oranje.swf">
<param name=quality value=high>
<param name=wmode value=transparent>
<embed src="portfolio-oranje.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="250" height="500"></embed>
</object>

Kan iemand me helpen svp?

Gr.

Quevi

Laiverd
%Europe/Berlin %892 %2005, 22:25
Net als je een document.write gebruikt om een <table> neer te zetten, kun je die toch ook gebruiken om je <object> tags neer te zetten?? Ik zie het probleem niet hoor.

Quevi
%Europe/Berlin %894 %2005, 22:27
dacht ik ook. Als ik alles tussen de object-tags plaats op de plek waar HIER staat, zou het moeten werken, dacht ik, maar helaas, werkt niet

Ik zal het even proberen door voor elke tag een andere document.write te gebruiken..

Laiverd
%Europe/Berlin %895 %2005, 22:30
Als je het met 1 document.write wilt doen, dan mogen er GEEN enters in de string zitten. Makkelijker/overzichtelijk vind ik zelf altijd:
var myString = "<table>"
myString += "<tr><td>";
etc.
document.write(myString);

John

Quevi
%Europe/Berlin %898 %2005, 22:33
ik begrijp de tweede stap niet zo goed. Hoe moet ik het dan invoegen in bovenstaand script?

Laiverd
%Europe/Berlin %905 %2005, 22:43
Wat is de tweede stap??

brossiekoppie
%Europe/Berlin %936 %2005, 23:28
var myString = "<table>"
myString += "<tr><td>";
myString += "<marquee>blaat! hier komt de flash!</marquee>";
myString += "</td></tr>";
myString += "</table>";

=> hiermee voeg je telkens een stukje string toe aan je grote string (myString) en dan echo je die gewoon in je document.

document.write(myString);

Quevi
%Europe/Berlin %389 %2005, 10:20
Werkt nog steeds niet. Ik heb het volgende geprobeerd:

<script type="text/javascript">
var backgr1="profiel/images/profiel1-2.jpg"
var backgr2="profiel/images/profiel2-2.jpg"
var backgr3="profiel/images/profiel3-2.jpg"

var cur=Math.round(6*Math.random())
if (cur<=1)
backgr = backgr1
else if (cur<=4)
backgr = backgr2
else
backgr = backgr3

var myString = "<table align="center" width="750" height="513" border="0" background="'+backgr+'">"

myString += "<tr><td>";

myString += "<object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="250" height="500">
<param name="movie" value="portfolio-oranje.swf">
<param name=quality value=high>
<param name=wmode value=transparent>
<embed src="portfolio-oranje.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="250" height="500"></embed></object>";

myString += "</td></tr>";

myString += "</table>";

document.write(myString);
</script>

Laiverd
%Europe/Berlin %461 %2005, 12:03
Als je het met 1 document.write wilt doen, dan mogen er GEEN enters in de string zitten. Makkelijker/overzichtelijk vind ik zelf altijd:
var myString = "<table>"
myString += "<tr><td>";
etc.
document.write(myString);

John
Even goed lezen dus.

Quevi
%Europe/Berlin %482 %2005, 12:34
Ok, heb het script aangepast.

Nu verschijnt er op de plek waar de .swf moet komen een leeg venster. De achtergrond (backgr) wordt niet getoond.

<script type="text/javascript">
var backgr1="profiel/images/profiel1-2.jpg"
var backgr2="profiel/images/profiel2-2.jpg"
var backgr3="profiel/images/profiel3-2.jpg"

var cur=Math.round(6*Math.random())
if (cur<=1)
backgr = backgr1
else if (cur<=4)
backgr = backgr2
else
backgr = backgr3
var flash = "<table align='center' width='750' height='513' border='0' background=\"'+backgr+'\">"
flash += "<tr>"
flash += "<td align='right'>"
flash += "<object classid='clsid27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='250' height='500'>"
flash += "<param name='movie' value='portfolio-oranje.swf'>"
flash += "<param name=quality value=high>"
flash += "<param name=wmode value=transparent>"
flash += "<embed src='portfolio-oranje.swf' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='250' height='500'></embed></object>'"
flash += "</td>"
flash += "</tr>"
document.write(flash);

De enige fout die ik nog zou kunnen vinden zijn de quotes bij \"'backgr'"\

brossiekoppie
%Europe/Berlin %538 %2005, 13:54
Nu moet je natuurlijk wel nog rekening houden met de js-syntax!

een ; achter elke lijn code

een \ voor elke " die moet worden geëchoot ( <tag parameter='value' /> is geen echte valid xhtml)

daarenboven is de syntax van een if/else structuur de volgende:

if (statement == true) {
alert("The statement is true! Blaat...");
}
else{
...
}

Quevi
%Europe/Berlin %583 %2005, 15:00
@brossiekoppie:

Heb alles aangepast zoals je zei maar het werkt nog niet.

Ik maak gebruik van " en ' om onderscheid te maken, dan is de \ toch niet nodig?

Kun je anders gewoon niet ff zelf aanpassen in de syntax wat je precies bedoelt. Misschien is er een alternatieve oplossing?

<script type="text/javascript">
var backgr1="profiel/images/profiel1-2.jpg"
var backgr2="profiel/images/profiel2-2.jpg"
var backgr3="profiel/images/profiel3-2.jpg"

var cur=Math.round(6*Math.random())
if (cur<=1) {
backgr = backgr1
}
else if (cur<=4) {
backgr = backgr2
}
else {
backgr = backgr3
}
var flash = "<table align='center' width='750' height='513' border='0' background='+backgr+'>";
flash += "<tr>";
flash += "<td align='right'>";;
flash += "<object classid='clsid27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='250' height='500'>"
flash += "<param name='movie' value='portfolio-oranje.swf'>";
flash += "<param name=quality value=high>";
flash += "<param name=wmode value=transparent>";
flash += "<embed src='portfolio-oranje.swf' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='250' height='500'></embed>'";
flash += "</object>";
flash += "</td>";
flash += "</tr>";
document.write(flash);

</script>

Laiverd
%Europe/Berlin %612 %2005, 15:42
Als je wel een wit vlak ziet, klik er dan eens met de rechtermuisknop op; als je daar ziet staan 'movie not loaded', dan klopt het pad naar je movie niet.

John

Quevi
%Europe/Berlin %776 %2005, 19:38
In bijlage kan je zien wat ik zie:

een pagina met scrollbar :-)

Ik zou echt niet weten wat ik verkeerd heb gedaan...

Laiverd
%Europe/Berlin %842 %2005, 21:13
Relevante regels afslyuiten met een ';' moet hier nog steeds gebeuren"

var backgr1="profiel/images/profiel1-2.jpg"
var backgr2="profiel/images/profiel2-2.jpg"
var backgr3="profiel/images/profiel3-2.jpg"

var cur=Math.round(6*Math.random())
if (cur<=1) {
backgr = backgr1
}
else if (cur<=4) {
backgr = backgr2
}
else {
backgr = backgr3
}

"<table align='center' width='750' height='513' border='0' background='+backgr+'>";Klopt ook niet volgens mij.
"<table align='center' width='750' height='513' border='0' background=" + backgr + ">";en let even op; je definieert je variabelen backgr met een dubbele quote' volgens mij moet dat een enkele zijn.

Als het dan nog niet werkt; zet de boel dan even online en geef ons even een url, zodat we zelf naar de pagina kunnen kijken.

Quevi
%Europe/Berlin %909 %2005, 22:49
Je kunt kijken op www.b-linked.nl/Linders/profiel.php

<html>
<head>
<title>Roger Linders</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="linders.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
var backgr1="profiel/images/profiel1-2.jpg";
var backgr2="profiel/images/profiel2-2.jpg";
var backgr3="profiel/images/profiel3-2.jpg";

var cur=Math.round(6*Math.random())
if (cur<=1) {
backgr = backgr1
}
else if (cur<=4) {
backgr = backgr2
}
else {
backgr = backgr3
}
var flash = "<table align='center' width='750' height='513' border='0' background='+backgr+'>";
flash += "<tr>";
flash += "<td align='right'>";;
flash += "<object classid='clsid27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='250' height='500'>"
flash += "<param name='movie' value='portfolio-oranje.swf'>";
flash += "<param name=quality value=high>";
flash += "<param name=wmode value=transparent>";
flash += "<embed src='portfolio-oranje.swf' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='250' height='500'></embed>'";
flash += "</object>";
flash += "</td>";
flash += "</tr>";
document.write(flash);

</script>
</head>
<body>
<table width="750" border="0" align="center" cellpadding="1" cellspacing="0" class="tabel_navigatie">
<tr>
<td align="center"><a href="index.php" class="one" target="_self">HOME</a></td>
<td align="center"><a href="profiel.php" class="one" target="_self">PROFIEL</a></td>
<td align="center"><a href="vrijwerk.php" class="one" target="_self">VRIJ WERK</a></td>
<td align="center"><a href="portfolio.php" class="one" target="_self">PORTFOLIO</a></td>
<td align="center"><a href="contact.php" class="one" target="_self">CONTACT</a></td>
</tr>
</table>


</body>
</html>

Laiverd
%Europe/Berlin %927 %2005, 23:15
E.e.a. moet natuurlijk wel staan op de plaats waar je de Flash movie wilt tonen. Je wilt nu e.e.a. neerzetten in de head van het HTML document. Om nou te voorkomen dat je de hele boel in je body neer moet zetten kun je document.write(flash) beter vervangen door een functie, en alleen de functieaanroep in je HTML zetten op de plaats waar de boel moet verschijnen. Vervang document.write(flash) door:

function doTheFlash(){
document.write(flash);
}Op de plaats waar de boel moet verschijnen:
<script language="JavaScript">doTheFlash();</script>
En ik zie nog steeds regels die NIET worden afgesloten met een ';'. It's a pain, maar javascript is nou eenmaal erg gevoelig voor dit soort fouten.

En
"<table align='center' width='750' height='513' border='0' background='+backgr+'>";is ook nog steeds niet goed. Tenslotte: je sluit je tabel in het javascript niet goed af. Volgens mij heb ik dan alles wel gehad ;)

John

Quevi
%Europe/Berlin %934 %2005, 23:26
het werkt nu wel maar het eerste gedeelte werkt niet meer.

bij elke refresh krijg ik in de tabel (waarin ook de flash staat) op de achtergrond een andere afbeelding

<script type="text/javascript">
var backgr1="profiel/images/profiel1-2.jpg";
var backgr2="profiel/images/profiel2-2.jpg";
var backgr3="profiel/images/profiel3-2.jpg";

var cur=Math.round(6*Math.random())
if (cur<=1) {
backgr = backgr1
}
else if (cur<=4) {
backgr = backgr2
}
else {
backgr = backgr3
}

var flash = "<table align='center' width='750' height='513' border='0' background='+backgr+'>";

Dit laatste gedeelte doet het dus niet meer...

Laiverd
%Europe/Berlin %410 %2005, 10:50
Sorry my bad; zit altijd wat te kloten met nesten van enkele en dubbele quotes ;). Moet zijn:

var flash = "<table align='center' width='750' height='513' border='0' background='" + backgr + "'>";

John

Quevi
%Europe/Berlin %378 %2005, 10:04
@LAIVERD

Verschrikkelijk bedankt voor je tijd!

Als ik 'ns wat voor jou kan doen... dan hoor ik het wel!

Laiverd
%Europe/Berlin %761 %2005, 19:16
Okay dan; succes met de verdere ontwikkeling van je site.

John

mknol
%Europe/Berlin %536 %2005, 13:51
je kunt ook \" gebruiken om een echte " in te voeren,
voorbeeld (een willekeurige regel):

flash += "<param name=\"quality\" value=\"high\">";

soms handig om te weten.

shaggy1987
%Europe/Berlin %464 %2008, 12:08
Noemen ze dat niet gewoon escapen?

mknol
%Europe/Berlin %681 %2008, 17:20
Noemen ze dat niet gewoon escapen?
Noemen ze dat niet oude posts uit 2005 ophalen? :P Foei

Ja dat heet escapen