2012-03-25 9 views
0

Ich arbeitete mit Haxe und ActionScript-Programmierung, aber ich bin neu zu flex. Hier ist meine Frage. Wenn ich Image von Server (Blazeds) in AS3 bekommen möchte, werde ich es auf Loader laden und fügen Sie es dann zu einigen z. MovieClip. Soll ich dasselbe tun, um ein Bild im Flex zu laden? Oder gibt es ein Flex-Schema, um das zu tun?Anzeige eines Bildes im Flex

Eine andere Frage ist. Wenn ich ein Image auf dem Blazeds-Server habe, was wird ein besserer Weg sein, es zu bekommen: es durch Java zu geben (d. H. Es zu lesen und dann an den Client weiterzuleiten) oder direkt mit Loader?

Vielen Dank im Voraus!

Antwort

2

BlazeDS wird normalerweise verwendet, um in AMF serialisierte Objekte zu senden. Es sieht nach einem Overkill aus, um dies für ein Bild zu tun, da es als ByteArray gesendet wird, aber Sie werden Ressourcen dafür ausgeben. Möglicherweise ist ein besserer Weg, insbesondere wenn das Bild ein statischer Inhalt ist, einfach als statische Datei mit jedem Server, auf dem BlazeDS läuft, zu verwenden.

Es gibt verschiedene Möglichkeiten, wie Sie ein Bild in Flex verwenden können. Einige besondere für Flex-Framework sind: Verwenden Sie es als Quelle für die Image Komponente, jedoch ist diese Komponente für eine Reihe von Aufgaben etwas zu groß. Zum Beispiel ist das Erstellen von Kacheln mit demselben Bild sehr ineffektiv, wenn Sie diese Komponente verwenden. Es gibt BitmapImage, das ein leichtes Gegenstück von Image sein soll, aber es hat möglicherweise nicht alle gewünschten Funktionen (es erbt nicht InteractiveObject, so dass es nicht auf Mausereignisse reagieren kann. Es ist auch nur als Spark-Komponente verfügbar.

Was ich in der Regel tun, wenn ich Bilder verwenden müssen, ist dies:

  1. wenn ich sie im Programm müssen zwischenzuspeichern (wiederzuverwenden ihre BitmapData) ich schreibe eine Klasse, die für die Beladung verantwortlich ist und Zwischenspeichern der Ergebnisse

  2. I schreibe eine sehr einfache Komponente, die erweitert und ihre graphics -Eigenschaft verwendet, um die gegebene BitmapData in sie zu zeichnen. Dies ermöglicht normalerweise die einfache gemeinsame Nutzung desselben BitmapData in mehreren Komponenten.

  3. Lassen Sie diese Komponente übergehen updateDisplayList Methode, so dass es die BitmapData es skalieren oder trimmen würde verwendet.

ich Loader tun, um Bilder zu laden, wie es wirklich kein anderer Weg, es zu tun. Andere Komponenten wie Image oder SWFLoader oder BitmapImage verwenden auch Loader und sie fügen nichts Wertvolles hinzu.

Möglicherweise, wenn Sie Slice-9-Grid-Funktionalität benötigen, dann ist etwas im Spark-Set von Komponenten eingebaut, dennoch würde ich es lieber selbst machen und mich dann darauf verlassen. Flex-Komponenten sind nicht wirklich vertrauenswürdig.

1

Nicht erforderlich. Wenn Sie die Eigenschaft source eines Objekts spark.components.Image setzen, wird das Bild geladen.

Zum Laden von SWF-Dateien können Sie mx.controls.SWFLoader auf die gleiche Weise verwenden.

+0

Vielen Dank! und was wird öfter 'Image' oder' Loader' verwendet? – Eugeny89

+0

'Image' ist eine leichte Version ohne Probleme.Hinter den Kulissen verwendet 'Image' einen' Loader', aber der Programmierer muss sich nicht darum kümmern, wenn Sie nur ein Bild anzeigen möchten –