Adobe Flash Anleitung | PopUps dynamisch anpassen und zentrieren (PHP / Javascript)

S

sevY

Hi,

ich hab mal etwas gebastelt, da man mich oft fragt wie das geht.

Ihr habt ein Bild und möchtet, das man onClick ein PopUp bekommt, welches das Bild in größerer Darstellung enthält. Nur soll das PopUp sich der Bildgröße anpassen und außerdem auf dem Bildschirm zentrieren.

So geht's:

Zuerst das Javascript, das das PopUp öffnet, zentriert, sowie den Titel des Popups und den Pfad zu dem Bild als Funktionsparameter enthält und an die PHP Datei, welche das PopUp darstellen wird.

PHP:
//Javascript 1.0
function popup(vars)
    {
    var object="popup.php?"+vars;
    window.open(object,"PopUp","width=10,height=10,location=0,scrollbars=no,resizable=0,status=no");
    }

Dann die PHP Datei, welche die Bildgröße ausliest und an ein Javascript weitergibt, um das PopUp zu zentrieren und anzupassen.

PHP:
<html>
<head>
<title><?php echo $_GET['title']; ?></title>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta http-equiv="expires" content="7">
<link rel="stylesheet" type="text/css" href="default.css">
</head>
<?php
$constraints=getimagesize($_GET['image']);
$x=$constraints[0];
$y=$constraints[1]+20;
echo'
    <body onload="window.resizeTo('.$x.','.$y.');window.moveTo((screen.width-'.$x.')/2,(screen.height-'.$y.')/2);focus();" class="popup">
    <img src="'.$_GET['image'].'">
    ';
?>
</body>
</html>

Eingebunden in AS kann das dann so aussehen:


PHP:
//Actionscript 1.0

image.onRelease=function()
    {
    getURL("javascript:popup('title=Resized&image=img/01stuhl.jpg');");
    }


In der HTML, in der die SWF eingebettet ist, natürlich nicht vergessen, das Javascript zu includen ;)

PHP:
<html>
<head>
<script language="javascript" type="text/javascript" src="function.inc.js"></script>
</head>
<body>
<table width="100%" height="100%">
    <tr>
        <td align="center" valign="middle">
            <table>
                <tr>
                    <td>
                        <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="333" height="200">
                            <param name="movie" value="resize.swf">
                            <param name="quality" value="high">
                            <embed src="resize.swf" quality=high width="333" height="200" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
                            </embed>
                        </object>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
</body>
</html>

Viel Spaß damit,

liebe Grüße

Yves
 
Zuletzt bearbeitet von einem Moderator:
Thx..

Hab sowas zwar nicht direkt gesucht, aber ich denke ich kanns irgendwann mal gebrauchen.

Würd mich mal interesieren ob bedarf für solche Tutorials besteht.. Wenn ja, würd ich auch mal ein paar schreiben..

Greetz
Arc
 
Arclite schrieb:
Würd mich mal interesieren ob bedarf für solche Tutorials besteht.. Wenn ja, würd ich auch mal ein paar schreiben..
Hi Arc,

Bedarf besteht meines Erachtens definitiv. Ich bekomme oft Emails oder lese Beiträge in Foren, die dieses Problem sehr oft anschneiden.

Interessant wäre zb Step2, indem man dem Javascript, welches die window.open() Funktion enthält, direkt die Größe der Bilddatei mitgibt und dort dann auch das Positioning definiert.

Somit hätte man das direkt in einem Schritt erledigt. Meines Erachtens viel eleganter.

Dazu könnte man direkt beim Einfügen der Bilder über ein CMS mittels der entsprechenden PHP Funktion die Maße zuzüglich des Dateinamens in einen Dbase Table einfügen. Auch alternativ erst über PHP und dann nach JS zu gehen sind möglich, wenn man sich die MySQL Inserts sparen möchte.


Liebe Grüße

Yves
 
Zurück
Oben Unten