FRAMESET mit variablen Werten für ROWS/COLS definieren
Andrea
- javascript
0 Martin Kruming0 Andrea
0 holger kuehne0 Andrea
Hallo!
Habe folgendes Problem: Meine HP habe ich mit Flash gestaltet. Da ich in Flash jedoch nur ungenügend Möglichkeiten habe, den Rand zu gestalten (der sich durch mir unbekannte Seitenverhältnisse des Browserfensters ergibt) habe ich mir folgendes überlegt.
Ich definiere einen Frameset mit Hilfe von Javascript. Je nach Seitenverhältnissen des Fensters soll es zwei Frames geben (rows oder cols). Der mainframe soll genau so groß sein, daß der Flashfilm optimal hineinpasst. Der Randframe, den ich dann getrennt gestalten kann, soll den Rest in Anspruch nehmen.
Nach einiger Recherche in Archiv und Auslese habe ich meinen Code folgendermaßen zusammengebastelt.
<html>
<head>
<title>Frameset</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script language="JavaScript1.2"><!--
var fensterhoehe = window.innerHeight
var fensterbreite = window.innerWidth
var fensterseiten = fensterbreite/fensterhoehe; //Seitenverhaeltnis des Fensters
var filmseiten = 1.446428571 //Seitenverhaeltnis des Films (Breite/Hoehe)
var framehoehe = Math.floor(fensterbreite/filmseiten)
var framebreite = Math.floor(fensterhoehe*filmseiten)
/*So hoch bzw breit ergibt sich der Frame, wenn man Hoehe bzw Breite des Fensters voll ausnutzt*/
if (fensterseiten>filmseiten)
/*Definition des Framesets, wenn die Seitenverhaeltnisse des Fensters so sind, das ich zwei senkrechte Spalten benötige.*/
document.writeln('<frameset cols="*,framebreite" border="0" frameborder="0" cellspacing="0"
cellpadding="0">');
document.writeln('<frame name="rand" src="frameinhalt/topframe.htm" marginwidth="0" marginheight="0" scrolling="no" noresize>')
document.writeln('<frame name="flashfilm" src="frameinhalt/mainframe.htm" marginwidth="0" marginheight="0" scrolling="no" noresize>');
document.writeln('</frameset>');
}
else{
document.writeln('<frameset rows="*,framehoehe" border="0" frameborder="0" cellspacing="0" cellpadding="0">');
document.writeln('<frame name="rand" src="frameinhalt/topframe.htm" marginwidth="0" marginheight="0" scrolling="no" noresize>');
document.writeln('<frame name="flashfilm" src="frameinhalt/mainframe.htm" marginwidth="0" marginheight="0" scrolling="no" noresize>');
document.writeln('</frameset>');
}
//--></script>
<body bgcolor="#FFFFFF">
</body>
</HTML>
Es hat mich einiges an Grübeleien und alert Fenstern gekostet, bis mir klar geworden ist, daß es wohl keine so gute Idee war, eine JavaScript Variable in den HTML Code einzubauen. (rows="*,framehoehe)
Bin nämlich ein absoluter Anfänger...
Bloß, was nun?
Übrigens den Rand des Film in Flash in der Hintergrundfarbe zu definieren funktioniert nicht! Ich habe verschiedene Hintergrundfarben. Und so ein plumpes einfarbiges Ding passt in meinem Fall einfach nicht...
Schon mal ganz vielen Dank an alle, die sich die Mühe machen zu antworten!!!
Gruß Andrea
Hallo Andrea,
so ganz hab ich Dein Problem nicht verstanden, aber vielleicht gibt es da auch eine ganz banale Lösung mit HTML!?
Schau Dir doch mal folgenden Link an:
http://www.clix-online.de
Da habe ich für die Flash-Seite auch ein Frameset programmiert, daß sich immer dem Browser-Fenster anpaßt. Schau Dir einfach mal den Quelltext an.
Ich hoffe, ich konnte Dir helfen.
Bis dann,
Martin
Hallo Martin,
so ganz hab ich Dein Problem nicht verstanden, aber vielleicht gibt es da auch eine ganz banale Lösung
mit HTML!?
Da habe ich für die Flash-Seite auch ein Frameset programmiert, daß sich immer dem Browser-Fenster anpaßt. Schau Dir einfach mal den Quelltext an.
Ich hoffe, ich konnte Dir helfen.
Nee, leider nicht. Der Witz ist, daß bei Dir der Rand einfach größer wird. Dadurch hat der Film eine fixe
Größe. Verschenkt ja aber eines der wichtigsten Features bei Flash: Daß der Film skaliert wird, ohne daß
die Datenmenge steigt. Sprich: ich möchte, daß der Film sich nach wie vor an die Größe des Fensters
anpasst!
Also in etwa so: COLS="Film so groß wie möglich,*"
Liebe Grüße Andrea
Hi
Wenn du das so schreibst, wie du das gemacht hast, dann wird eben nicht die Variable framehoehe, sondern der String "framehoehe" uebergeben.
richtig gehts so:
document.writeln('<frameset rows="*,'+framehoehe+'" border="0" frameborder="0" cellspacing="0" cellpadding="0">');
Tschau Holger
Hi
Wenn du das so schreibst, wie du das gemacht hast, dann wird eben nicht die Variable framehoehe, sondern der String "framehoehe" uebergeben.
richtig gehts so:
document.writeln('<frameset rows="*,'+framehoehe+'" border="0" frameborder="0" cellspacing="0" cellpadding="0">');
Tschau Holger
Das ist der Wahnsinn! Es funktioniert!
Dass Probleme manchmal so einfach zu lösen sind...
Vielen Dank!
Andrea