über mich

Hallo, mein Name ist Heiko Dreyer. Ich arbeite freiberuflich als Webdesigner und Entwickler mit Schwerpunkt Flash/Flex Animation und Web-
Anwendungsentwicklung.

Brauchen Sie Hilfe bei Ihrem Webdesign oder suchen Sie einen Entwickler? Ich stehe Ihnen jederzeit mit meinen Fähigkeiten zur Verfügung.

über boxedfolder

Diese Website dient in erster Linie als Überblick meiner absolvierten Projekte. Sie bietet einen Auszug aus aktuellen Entwicklungsständen und Arbeiten.

Diesweiteren bemühe ich mich regelmäßig sonstiges wissenswertes im Bereich Webdesign und Medien zusammenzutragen.

Dynamische Flash-Object Größe mit Flex und externalInterface

Bei Flex Standalone-Apps ist es meist nicht erforderlich eine entsprechende absolute Größe des swf-objects innerhalb des Browsers vorzugeben. Große Applikationen laufen oft in 100% des Browserfensters. Will man allerdings ein Hybrid-Projekt realisieren, indem die swf-Datei dynamisch mit Daten versorgt wird, ist es manchmal notwendig auch demenentsprechend dynamische Größen für das einzubettene swf-Objekt zu generieren und zu übergeben.

Beispiele für solche Einsatzgebiete wären z.B. Gallerien, die sich nach unten erweitern umso mehr Bilder per xml geladen werden. Da mir vorher nicht bekannt ist, wie viele Bilder eingepflegt wurden, kann ich vorher auch nicht abschätzen ob die swf-Datei nun beispielsweise 500 x 1000 Pixel groß ist, oder nur 500 x 500.


Das folgende kleine Beispiel zeigt, wie sich so ein Fall dynamisch per externalInterface-Klasse und JavaScript lösen lässt.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="500" creationComplete="init()">
	<mx:Script>
		<![CDATA[
				public function init():void {
					var appHeight:int = bild1.height + bild2.height + 50;
					bild2.y = bild1.height + 50;
					if (ExternalInterface.available) {
						ExternalInterface.call("applicationHeight", appHeight);
					}
				}
				]]>
	</mx:Script>	

	<mx:Image source="@Embed('images/1.jpg')" id="bild1" />
	<mx:Image source="@Embed('images/2.jpg')" id="bild2" />		

</mx:Application>

In diesem Fall habe ich zwei Bilder platziert, dessen beiden Größen (plus 50 pixel Abstand) ich mit der Methode “ExternalInterface.call()”in mein Javascript übergebe.

function applicationHeight(size) {
       document.getElementById("externalInterface").style.height = parseInt(size)+"px";
}

So schaut meine JavaScript Funktion aus, die innerhalb der html-Datei definiert ist. Im Prinzip wird hier lediglich das id-Element mit dem Namen “externalInterface” per css in seiner Height geändert. Man muss also darauf achten, dass das eingebettete swf-Objekt die richtige id bekommt.

externalInterface

In dem obrigen Fall ist die Anwendung von externalInterface für das Festlegen der Größe eigentlich nicht erforderlich, da man die fixe Größe vorher kennt. Es handelt sich nur um ein vereinfachtes Beispiel wie externalInterface dynamische Größen steuern kann.

6. April 2008 (19:19 Uhr) - flash & flex, jquery & javascript, tutorials, web nach oben

Bookmarks »


  • del.icio.us
  • Digg
  • Technorati
  • MisterWong.DE
  • Furl
  • Facebook
  • Live
  • Google
  • Sphinn
  • Mixx
  • NewsVine
  • BlinkList
  • co.mments
  • YahooMyWeb
  • Spurl
  • blogtercimlap
  • blogmarks
  • StumbleUpon
  • Ma.gnolia


0 Kommentare »