Ich muss zugeben, ich war lange Jahre gegen die Verwendung von Komponenten in Flash. Diese Einstellung rührte noch aus der Zeit, als alle möglichen Flasherzeugnisse, die ich zu produzieren hatte, so klein (Dateigröße) sein mussten wie möglich. Die popeligste Komponente in einem Flashfilm einzusetzen, bedeutete gleich 30kb und (teils weit) mehr an Dateigrößenzuwachs, was seinerzeit den durch den Kunden gesetzten Rahmen gesprengt hätte.
Inzwischen sind wir alle im Jahr 2008 angekommen und halten dank schneller Internetverbindung Dateigrößen von mehreren hundert Kilobyte für vertretbar. Grund genug für mich, bei einem aktuellen Projekt (Flash-CMS) einen erneuten Blick in die Komponenten-Wundertüte zu werfen. Die Idee dabei ist natürlich, Zeit und Kosten zu sparen und gleichzeitig professionell funktionierende und ebenso aussehende Elemente verwenden zu können.
Es ist erstaunlich, wie viele der in Flash 8 Professionell enthaltenen Komponenten sich für mein Projekt eignen! Bei einem CMS gibt es ja in der Regel ein- und mehrzeilige Texte zu verarbeiten, Buttons zu klicken, Bilder hochzuladen und das eine oder andere Datum einzugeben. Gerade was Letztgenanntes angeht, bin ich noch ganz von den Socken, bietet Flash doch anscheinend mit der DateChooser-Komponente eine tolle Klicky-bunty-Lösung (Gruß an Markus 🙂 ), die für AnwenderInnen wie auch für EntwicklerInnen sehr bequem bedienbar ist.
Nach ein, zwei Minuten Benutzung fiel mir auf, dass das von AnwenderInnen eingestellte Datum durch die Eigenschaft selectedDate auslesbar ist und in einem eher unhandlichen Format (z.B. „Thu Aug 14 00:00:00 GMT+0200 2008“) zurückgeliefert wird. In der Flash(8)-Referenz ist nichts zu finden, was sich auf die Formatierung des Rückgabe-Datums bezieht.
Ich war kurz davor, das Datum mit split zu attackieren, als ich in einem Forum auf eine andere Möglichkeit stieß:
var pubDateListenerObject:Object = new Object();
pubDateListenerObject.change = function(eventObj:Object) {
var month = eventObj.target.selectedDate.getMonth()+1;
var day = eventObj.target.selectedDate.getDate();
var year = eventObj.target.selectedDate.getFullYear();
if (month<10) {
month = „0“+month;
}
if (day<10) {
month = „0“+day;
}
var formattedDate:String = year+“-„+month+“-„+day;
new_entry.year = year;
new_entry.month = month;
new_entry.day = day;
};
pubDate.addEventListener(„change“, pubDateListenerObject);
An den rot markierten Stellen ist zu erkennen, dass es sich bei selectedDate um ein handelsübliches Date-Objekt handelt (und das steht nun auch tatsächlich in der Flash-Referenz zu lesen: „Property; a Date object that indicates the selected date […]„), dem man ganz normal, d.h. unter Verwendung der Date-Klassenmethoden, Einzelwerte für beispielsweise den Tag, den Monat oder das Jahr entlocken kann.
Was also hier als Loblied auf die Komponenten begann, endet mit einem Missklang — wie so oft lässt die mit Flash gelieferte Dokumentation zu wünschen übrig.
Schreibe den ersten Kommentar