Dynamik - Sounds, Bilder, Variablen dynamisch laden

Thema:
Dynamik - Sounds, Bilder, Variablen dynamisch laden
Description: Die Erneuerungen in Sachen Dynamik in Flash MX
Keywords:
Flash, Dynamik, Sound, Bilder, LoadVars
Author:
Sebastian Weyrauch
Date:
14.07.2002
Doc-ID:
57-001
URL:
http://www.flashworker.de/tutorial/57/001.html
Version:
1.0
Änderungen:
-
Anforderungen:

Flash MX

Vorkenntnisse:
Flash Grundkenntnisse
Download:
PC: "dynamik.zip", 9 kB

Vorwort
  Der Inhalt des Tutorials


Sounds dynamisch laden

Bilder dynamisch laden

Das LoadVars Objekt (PreLoader für Textdateien)





Vorwort

Eine Vorraussetzung für Rich Internet Applications ist eine gute Dynamik, ohne diese kommen wir kaum noch aus. Deswegen wurde in Flash MX auch ein Schwerpunkt auf die Dynamik gesetzt.
Bislang war es nur möglich externe Variablen oder Flashmovies während der Laufzeit in Flash reinzuladen (loadVariables, loadMovie) oder halt die XML Varianten. Mittlerweile gibt es da eine ganze Reihe weiterer Möglichkeiten. Mit der MX Technologie ist es ab sofort möglich JPEG Bilder & Sounds auf dynamische Weise in Flash reinzuladen. Dies ist zum Beispiel sinnvoll bei größeren Datenmengen und wenn man diese gezielt laden möchte, um längere Ladezeiten zu vermeiden. Darüberhinauß ist es nun möglich über das LoadVars Objekt Textdaten noch besser zu laden - zum Beispiel in Hinsicht auf einen PreLoader.




Sounds dynamisch laden
Vorneweg muss gesagt sein, dass lediglich externe MP3 Dateien in Flash reingeladen werden können.
Um dies zu realisieren, muss als erstes mal ein neues Sound Objekt angelegt werden.

snd = new Sound();

Jetzt kommt der MX Teil. Und zwar gibt es ab Flash MX folgende Methode:

Sound.loadSound("url", streaming);

URL ist logischerweiße der Pfad zur MP3 Datei. Der Parameter 'streaming' gibt an, ob es sich um einen Streaming- oder Ereignis-Sound handelt.
Ereignis-Sounds müssen erst vollständig runtergeladen werden um abgespielt zu werden; Streaming-Sounds hingegen können schon während dem Laden abgespielt werden (sobald der Dekomprimierungsalgorithmus vorhanden ist).

Wenn der parameter 'streaming' also den Booleschen Wert 'true' hat, handelt es sich um einen Streaming-Sound, bei 'false' um einen Ereignis-Sound.

Beispiel Aktion:

snd.loadSound("http://www.domain.de/song.mp3", true);


Zusätzlich sind noch zwei Ereignisprozeduren in MX hinzu gekommen, eine davon ist für uns interessant:

Sound.onLoad = funktion
'funktion' ist eine funktion, die aufgerufen werden soll, sobald ein Sound geladen wird.

Wer noch einen PreLoader basteln will, kann wie bei MovieClips die geladenen Bytes per getBytesLoaded und die gesamte Größe per getBytesTotal bestimmen.

Sobald die Datei geladen sind, können sie wie jeder andere Sound in Flash mit dem Sound Objekt gesteuert werden.
(Nochmal als Hinweis: Dieses Tutorial soll nicht auf die Wiedergabe von Musik eingehen und die neuen Befehle für das Sound Objekt in Flash MX, sondern lediglich auf das dynamische Laden!)



 

Bilder dynamisch laden
An Grafikformaten können in Flash nur JPEGs während der Laufzeit importiert werden.
Außerdem werden nur herkömmliche JPEGs, keine progressiven, unterstützt.

In Flash können diese Bilder per loadMovie und loadMovieNum geladen werden.

Als Beispiel

meinMovieclip.loadMovie("flashworker.jpg");

Hier würde das Bild 'flashworker.jpg' in die Instanz 'meinMovieclip' geladen werden.
Dieser MovieClip kann natürlich wie ein normaler MovieClip verwendet werden und kann somit positioniert, skaliert usw. werden.
Auch hier sind demzufolge wieder getBytesLoaded und getBytesTotal gültig, mit denen man dann einen PreLoader für die Grafik bauen kann.

loadMovieNum lädt demzufolge ein Bild in eine bestimmte Ebene.



 

Das LoadVars Objekt (PreLoader für Textdateien)
Bisher war es ja nur möglich Variablen über loadVariables und loadVariablesNum (XML mal weggelassen) zu laden. Das LoadVars ist ein ausgearbeites Objekt dazu.
Mit ihm wird es möglich Dateien zu laden und den Ladefortschritt anzuzeigen, zum Beispiel. Wieder ist zu erwähnen, dass dieses Tutorial nicht die Grundlagen eines PreLoader darlegen soll, sondern lediglich die damit verbunden Methoden im LoadVars Objekt - und alle weiteren die von Bedeutung für die Dynamik sind.

Eine Datei wird eingeladen per

LoadVars.load(url);
Diese Methode ähnelt der XML.load Methode.


Durch loadVariables war es ja auch möglich Dateien zu laden und Daten in Form von Variablen weiterzugeben.
Dies ist auch wieder beim LoadVars Objekt so und dafür gibt es auch eine eigene Methode:

LoadVars.send(url [,ziel, methode] )
'url' ist natürlich der Pfad zur Datei. 'ziel' & 'methode' sind zusätzliche Parameter. Der Parameter 'ziel' gibt das Fenster im Frameset an, in dem die Antwort des Servers auf die Datenübermittlung ausgegeben werden soll.
Der Parameter 'methode' gibt, wie der Name schon sagt, die Methode an, mit der die Daten gesendet werden sollen (GET oder POST).


Wer eine Kombination aus Senden und Empfangen haben will, sollte folgendes verwenden:

LoadVars.sendAndLoad(url, zielobjekt[,methode]) 
Damit werden Daten dem Server übermittelt und die Antwort des Servers wird in das LoadVars-Objekt mit der Bezeichnung 'zielobjekt' geladen.

 

 

Wer die Menge der geladenen Daten abfragen möchte (und evtl. dazu einen PreLoader basteln möchte) kann wie gewohnt

LoadVars.getBytesLoaded
und
LoadVars.getBytesTotal

verwenden. Dadurch können die geladenen Daten eines load und sendAndLoad Vorgangs ermittelt werden.

 

Weitere Eigenschaften:

Die Daten, die eingelesen werden soll, brauchen einen bestimmten MIME-Typ. Folgende Eigenschaft enthält den Typ der Datei:

LoadVars.contentType
Der Standartwert hier für ist application/x-www-form-urlencoded.

 

Als weitere Eigenschaft ist

LoadVars.load
aufzuführen. Diese Eigenschaft gibt in Form eines Booleschen Werts an, ob ein Ladevorgang abgeschlossen ist oder nicht.


Als Ereignis steht noch

LoadVars.onLoad(erfolgreich) 
zur Verfügung. Dieses Ereignis wird aufgerufen, sobald ein Ladevorgang abgeschlossen ist.
'erfolgreich' gibt an, ob dieser erfolgreich war.