Flash an Fenster anpassen

Zugegebenermaßen halte ich es auch für verfehlt, JS und Flash zu mischen, wenn es nicht unbedingt notwendig ist (mit PHP hat, kann man sich (siehe Deinen neuesten Thread;)) auch sehr elegant behelfen - allerdings nicht unbedingt, wenn die Größe des Objekts die ganze Zeit nachgeregelt werden soll) - die Skalierung mit JS habe ich einmal in einer Datei verwendet, die nur zum persönlichen Gebrauch im IE bestimmt war.
Ich habe eine Flash-Datei bislang noch nie dynamisch dem Browserfenster anpassen wollen - schließlich entwickle ich für eine bestimmte Größe (und etwaige Änderungen lassen sich bei Bedarf Flash-intern lösen, z.B: durch Skalierung einzelner MCs).

Gruß
 
Hallo nochmal:

Also ich glaube, dass jeder der ein Flashplugin zulässt auch Javascript aktiviert hat. und jene welche es nicht haben (0,00000...%) können sich das .swf eben nur in 800x600 anschauen. Na und?

Vielmehr empfinde ich Flash an sich als problematisch, bezüglich des Ausschließens.

p.s. Ich habe das ganze jetzt übrigens folgender Maßen gelöst:

<body bgcolor="#666666" scroll="no">
<div id="hlayer" style="position: absolute; width:800px; height:600px; z-index: 1; left: 0px; top: 0px" >
<p>
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
WIDTH="100%" HEIGHT="100%" id="Uhr" ALIGN="top">
<PARAM NAME=movie VALUE="Uhr.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=scale VALUE=exactfit> <PARAM NAME=wmode VALUE=transparent> <PARAM NAME=bgcolor VALUE=#666666>
<EMBED src="Uhr.swf" quality=high scale=exactfit wmode=transparent bgcolor=#666666 WIDTH="100%" HEIGHT="100%" NAME="Uhr" ALIGN="top"
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT></div></p>
<script language="javascript">
<!--
width =document.body.offsetWidth;
height = document.body.offsetHeight;
fla_width = 0;
fla_height = 0;
function check_window()
{
if((height!=document.body.offsetHeight)||(width!=document.body.offsetWidth))
{
height=document.body.offsetHeight;width=document.body.offsetWidth;set_fla();
}
}

function set_fla()
{
if((width/height)<(800/600))
{
fla_width = width-3;
fla_height = (fla_width*600)/800;
}
else
{
fla_height=height-18;
fla_width=(fla_height*800)/600;
}
document.getElementById("hlayer").style.width=fla_width;
document.getElementById("hlayer").style.height=fla_height;
center_fla();
}
function center_fla()
{
document.getElementById("hlayer").style.left=(width-fla_width)/2;
document.getElementById("hlayer").style.top=(height-fla_height)/2;
}
set_fla();
window.setInterval("check_window()",100);
//--></script>

</body></HTML>

Mit freundlichen Grüßen

Matthias Nordwig
 
nochmal Hi,

schön, dass es anscheinend funktioniert, aber mal eine persönliche Frage: :)

Willst Du wirklich Deine ganze Flashseite an die Fenstergröße anpassen? Flexibilität in allen Ehren, aber kommt da nicht irgendwann ein "Sumba-Flair" auf? ;) Bei ausschließlicher Verwendung von Vektorgrafiken funktioniert das sicher ganz gut, aber Bitmaps und Pixelfonts können m.E. durch Skalierung ganz schön versaut werden... Nein, ich will Dich hier nicht kritisieren, ich bin einfach nur interessiert, wie das Ergebnis aussieht. Ist es die selbe URL wie in den HP-Reviews?

Gruß
 
Hi,

kannst mich ruhig kritisieren. :)
Dazu poste ich ja hier. Schliesslich währe ich ohne deine bzw. eure Hilfe noch nicht so weit.

Ja ist die selbe URL.
p.s.: Wegen der Grafiken habe ich mir ja eben die Mühe gemacht dieses Script zu schreiben: Um Verzerrung zu verhindern. Das funktioniert wie folgt:

800/600=1,33

1024/768=1,33

usw.

deswegen: x/y=1,33

Solange dieses Verhältniss eingehalten wird stimmt alles.
Und da setzt das Skript an. Wenn nämlich x/y<800/600
dann ist y überproportional groß. Wenn x/y>800/600 dann ist x überproportional groß.

Es muss sich am verhältnissmäßig kleineren Wert ausgerichtet werden, um die maximal mögliche Größe nutzen zu können ohne Verzerrung hervorzurufen.
sprich dieser wird dann als Größe für das .swf eingesetzt.
und der andere Wert lässt sich ja aus den 3 Werten berechnen: Beispiel

x steht fest, also errechnet sich y aus (x*600)/800

Das ist das Prinzip der ganzen Aktion.
Im übrigen würde es generell komisch aussehen, wenn der Film beispielsweise 100 x 800 o.ä. angezeigt wird.

Mit freundlichen Grüßen

Matthias Nordwig
 
....

glaub mir, ich sitze wie eine Glucke auf meinen Statistikergebnissen des letzten Jahres, und aus den 283.437 Einträgen kannst du ersehen, das FLash an sich ab Player Version 6,000 zu 93% vorhanden war - die Kombination FlashPlayer / JavaScript aber nur zu 81% - das nenn ich statistisch signifikant.

Es ist eben das bekannte Drittel der User mit Sicherheitsbedenken, bzw die Firmennetzwerke mit Alt-Administratoren, die die Sache schwer machen - mit Flash sind viele von denen angefixt, aber JavaScript halten viele für unnötig, gefährlich und nicht lohnend, so ist das nun mal.

Ausserdem ist ein wesentlicher Grund mit Flash zu operieren die Browserunabhängigkeit, die du mit deinem Script leichtfertig aufgibst.

Aber jeder wie er will....


B
 
Hi,

nee, was ich meinte war nicht das Seitenverhältnis - eher folgendes:

Wenn Leute Ihre Fenster nicht maximiert haben, bzw. nur über eine geringe Auflösung verfügen (z.B. 800x600), sehen sie in etwa folgendes (siehe Anhang).

Diese Leute wollen vielleicht lieber ein wenig scrollen, statt zu rätseln, was nun auf der Seite steht ;)

Zusammen mit Basileus' Argument nimmst Du damit u.U. einer nicht unbeträchtlichen Anzahl von Usern den Spaß an der Freud...

Gruß
 

Anhänge

  • jmotion.jpg
    jmotion.jpg
    29 KB · Aufrufe: 43
Ich glaube das wohl.

Aber: Bei wem es nicht aktiviert ist, der sieht mein .swf dann ebend mit einer statischen Auflösung von 800x600.
Das halte ich nicht wirklich für schlimm. Es ist ja nicht so das der Besucher abhängig davon ist. Und bei wem es unterstützt wird, der hat ebend dieses zusätzliche Feature.


Mit freundlichen Grüßen

Matthias Nordwig
 
..ist wie gesagt kein Fehler, hat eher etwas mit philosophie zu tun, und da hat ja jeder eine andere - trotzdem würde ich das ganze erstmal auf pixelfont Verträglichkeit testen, bevor ich es implementiere....

Grüsse
B
 
Überzeugt!

Mist! Ich hab mir solche Mühe gegeben für das Script. :)

Mit freundlichen Grüßen

Matthias Nordwig
 

Neue Beiträge

Zurück