SWX Kuler Logo

Nachdem in mich vor einiger Zeit mit den Grundlagen von SWX beschäftigt hatte, habe ich nun meine erste Klasse für SWX geschrieben: eine Kuler API für SWX.

Es ist eine Klasse, die auf einen beliebigen RSS-Feed von Adobe Kuler zugreift und diesen ausliest. Die Daten können dann an eine Flashanwendung übergegeben werden, wo sie direkt als natives Flashobjekt bereit stehen. (SWX Kuler Beispiel anschauen )

Vorteile von SWX

SWX ist ein Format zum Austausch von Daten, über das ich bereits hier berichtet habe. Der Vorteil liegt darin, dass es ein natives Datenformat für Flash ist. SWX ist Open Source und wurde von Aral Balkan entwickelt. Es ist sehr einfach zu verwenden und steht mittlerweile in der finalen Version 1.0 zur Verfügung.

Insgesamt muss gesagt werden, dass man sich schnell in SWX einarbeiten kann. Die Entwicklerwerkzeuge (SWX Service Explorer und der SWX Data Analyzer) sind nützliche Hilfsmittel beim Erstellen von Anwendungen mit SWX.

Kuler API für SWX

Die Methoden der Kuler-Klasse lauten:

  • loadMostPopularFeed()
    Lädt die 20 populärsten Farbschemen.
  • loadHighestRatedFeed()
    Lädst die 20 Farbschemen mit der besten Bewertung
  • loadNewestColorFeed()
    Lädt die 20 neuesten Farbschemen
  • loadFilteredFeed ($filter, $searchQuery)
    Mit dieser Methode lässt sich eine Suche durchführen. Gesucht werden kann nach einem Ausdruck (=$searchQuery) in folgenden Eigenschaften: themeID, userID, email, tag, hex, title (=$filter)
  • loadKulerFeedByURL ($feedURL)
    Diese Funktion ist der eigentliche Kern der Klasse und wird von allen vorigen Methoden aufgerufen. Sie lädt den Feed und parst die XML-Datei. Als Ergebnis liefert sie ein Array. Wer möchte, kann diese Funktion auch direkt mit einer Kuler-URL aufrufen.

Verwenden der Kuler-Klasse für SWX

Hinweise: Für das Kennenlernen der generellen Arbeitsweise von SWX empfiehlt sich der Screencast von Aral Balkan. (siehe Archiv)

Actionscript:
  1. swx.gateway = "http://localhost:8888/php/swx.php";

Eine wichtige Anpassung für die Beispiele (.fla) ist die Adresse des SWX-Gateway im ActionScript-Code. In einer lokalen Entwicklungsumgebung (z.B. MAMP) ist dies üblicherweise der localhost. Auf dem Livesystem gibt man die URL des Webspace an.

serviceClass und method

Actionscript:
  1. // Set call details.   
  2. var callDetails:Object =
  3. {
  4.     serviceClass: "Kuler",
  5.     method: "loadMostPopularFeed",
  6.     args: [""],
  7.     result: [this, resultHandler],
  8.     timeout: [this, timeoutHandler],
  9.     debug: true
  10. }

Als serviceClass trägt man Kuler ein, bei method die gewünschte Methode (siehe oben), args nimmt evtl. nötige Argumente auf (für die Suchfunktion werden Filter und der Suchausdruck benötigt).

resultHandler

Die Antwort von SWX wird über Funktion resultHandler erhalten.

Actionscript:
  1. function resultHandler(event:Object)
  2.     {
  3.         // Load is complete.
  4.         isLoading(false);
  5.  
  6.         // result from service class
  7.         myKulerFeed = event.result
  8.         ...

Als Ergebnis der Anfrage bekommt man von SWX ein Array zurückgeliefert, dass die angeforderten Daten enthält. Da es sich bei SWX um ein natives Datenformat für Flash handelt, kann man nun einfach über die Punktschreibweise die einzelnen Eigenschaften aufrufen. In der eckigen Klammer gibt man für yourItemNumber die Nummer des Datensatzes an, also z.B. 13 für das 14. Kuler-Theme (Zählung beginnt bei 0) .

Das Attribut swatchHexColor ist Array, weshalb man für die fünf Farbwerte einfach ein zusätzliche eckige Klammer hinten anfügt.

Actionscript:
  1. myKulerFeed.themeTitle[yourItemNumber]   
  2. myKulerFeed.themeID[yourItemNumber]   
  3. myKulerFeed.themeImage[yourItemNumber]
  4. myKulerFeed.link[yourItemNumber]
  5. myKulerFeed.themeTags[yourItemNumber]
  6. myKulerFeed.themeAuthor.authorLabel[yourItemNumber]
  7. myKulerFeed.themeAuthor.authorID[yourItemNumber]
  8. myKulerFeed.themeEditedAt[yourItemNumber]
  9. myKulerFeed.themeCreatedAt[yourItemNumber]
  10. myKulerFeed.themeRating[yourItemNumber] 
  11. myKulerFeed.themeDownloadCount[yourItemNumber]
  12. myKulerFeed.themeSwatches.swatch.swatchHexColor[yourItemNumber][0]
  13. myKulerFeed.themeSwatches.swatch.swatchHexColor[yourItemNumber][1]
  14. myKulerFeed.themeSwatches.swatch.swatchHexColor[yourItemNumber][2]
  15. myKulerFeed.themeSwatches.swatch.swatchHexColor[yourItemNumber][3]       
  16. myKulerFeed.themeSwatches.swatch.swatchHexColor[yourItemNumber][4]

Wie viele Elemente in dem Feed enthalten sind (meist 20), kann man z.B. über myKulerFeed.themeTitle.length abfragen.

Installation

Die Datei Kuler.php muss in das Verzeichnis "php/services" der SWX Installation kopiert werden. Dort liegen alle Klassen/Services, die über SWX ansprechbar sein sollen.

Beispiele und Download

Anschauen: SWX Kuler Demonstration
Anschauen: SWX Kuler Simple Demo
Download: SWX Kuler Klasse und Beispiele (Flash 8 )

Links

Kuler Logo

Link: swxformat.org
Link: Kuler API