Archive

Posts Tagged ‘flash’

AS3: Interactive Webcam Package 1.2

December 21st, 2007 16 comments

iacamlogo_web iacamdoku iacamdoku2

Es ist endlich geschafft und auch noch rechtzeitig zu Weihnachten 😉 wurde die Version 1.2 meines Interactive Webcam Packages fertig gestellt. Viel hat sich in der Funktionalität zur Version 1.0 eigentlich nicht getan, ausser dass das Interactive Webcam Package nun komplett auf ActionScript 3 portiert wurde.
Aber der damit verbundene erhebliche Perfomancesprung von ActionScript 2 auf ActionScript 3 und die neuen Open-Source Projekte (wie z.B. Papervision 3D) ermöglichen einige neue interessante Anwendungsfelder für das Interactive Webcam Package. Als kleinen Vorgeschmack und für eine bessere Vorstellung wie solch eine Kombination aussehen könnte, habe ich für euch zwei Videos meiner neuen Webcam Experimente mit hochgeladen, die in Kombination mit der Papervision3D Engine entstanden sind.

Der Sourcecode dieser Experimente liegt in dem zip-File des Interactive Webcam Packages bei, so dass jeder damit ein wenig rumspielen kann. An dieser Stelle möchte ich mich noch bei den Entwickler der Papervision3D Engine,John Grden für das XFighter Modell und Jens Franke für seinen Papervision3D Vortrag und seine Utility Klassen bedanken. Ohne diese hilfreichen Tools hätte ich diese zwei kleinen Experimente auf jeden Fall nicht so schnell realisieren können.

Nochmal kurz zum Aufbau und zur Struktur des neuen Interactive Webcam Packages. Da sich bekanntlich die Flash API Struktur von ActionScript 2 auf ActionScript 3 schon gut verändert hat, musste ich auch ein bissl an der Struktur des Interactive Webcam Packages rumschrauben. Da die Klassen aber nicht so mega umfangreich sind, hat sich eigentlich nur das Eventhandling nennenswert verändert. So dass jetzt alle Events mit der bekannten ActionScript 3 addEventListener() Funktion abgefangen und bearbeitet werden müssen. Aber über solch eine Änderung lacht ja ein eingefleischter AS3 Coder ;-). Für alle anderen offenen Punkten soll die beigelegte Dokumentation des Interactive Webcam Packages für Klärung sorgen. Dabei orientiert sich die Dokumentation an der etablierten Flash Hilfe. Aus diesem Grund sind alle möglichen Klassenmethoden und Attribute erklärt und mit Beispielcodes versehen. Sollte es dennoch Fragen oder Probleme geben, scheut euch nicht mich anzuschreiben oder hier zu posten. Ich werde dann mein Bestes geben.

Nun aber genug von mir, wünsch euch allen frohe Weihnachten und viel Spass beim Flashen im neuen Jahr!


Flashforum Konferenz 2007

September 30th, 2007 No comments

ffk07 ffk07speaker ffk07preise

Vom 24 bis 26. September fand die Flashforum Konferenz im Kölner Mediapark statt. In einem wirklich sehr angenehmen Ambiente bekam man von den besten deutschen Flashern sehr viel hilfreiche Information und Inspirationen verabreicht. An dieser Stelle herzlichen dank an die Organisatoren Sascha Wolter und Marc Thiele, die wieder mal einen Top Job gemacht haben.

Die absoluten Highlights auf der Konferenz waren für mich die Vorträge von Joa Ebert, Mario Klingemann, Jens Franke und natürlich Aral Balkan, der eine monster gute Präsentation über sein neues Projekt SWX gehalten hat. Der Mann weiss wirklich wie man Leute unterhält und von sich begeistert, in einem sehr positiven Kontext. Bei diesem Vortrag habe ich für mich persönlich doch viel in Sachen Präsentatation mitgenommen (obwohl es darüber überhaupt nicht ging). Nun aber Schluss mit der Schleimerei und Labberei, jetzt mal was Brauchbares für jedermann. Da die meisten Folien der Sprecher sehr aussagekräftig und lehrreich sind, hier eine Auflistung der Vorträge mit den dazugehörigen Foliendownloads.

Links zu Fotos von der Flash Forum Konferenz gibt es in einem Flashforum Thread

Da leider noch nicht alle Folien zu den Vorträgen veröffentlicht wurden, wird dieser Blogeintrag immer wieder geupdatet - also mal öfters vorbeischauen 😉

Categories: Games, Programming Tags: , , , ,

Wie werde ich ein Flash Developer?

September 19th, 2007 1 comment

eas3 hfdp friendsofedp

Um die Frage in der Überschrift zu beantworten, müssen wir uns erstmal auf eine Defintion für den Beruf Flash Developer einigen. Ich verstehe unter dem Begriff Flash Developer, einen Programmierer, der mittlere bis sehr komplexe Programmieraufgaben mit Hilfe der Flashtechnologien löst. Das bedeutet, das Aufgabengebiet des Flash Developers fängt dort an, wo der Flash Designer (Motion-, Grafik- und Mediendesigner) nicht mehr mit seinen ActionScript Kenntnissen oder Animationswerkzeugen (Tweening usw.) weiterkommt. Aus diesem Grund soll dieser Blogeintrag eine kleine &Uml;bersicht geben, welche Themen ein waschechter Flash Developer mindestens beherrschen sollte bzw. damit er weiss wo er nachzuschlagen hat. In diesem Blogeintrag werde ich nicht auf softwarebasierende Themen, wie z.B. die Flash GUI, Flash AS Editoren Umgebungen und Versionsmanagement (CVS und SVN) eingehen. Das würde hier ein bissl den Rahmen sprengen und geht meiner Meinung nach an dieser Stelle auch zu sehr ins Detail.

Nun aber los, gehen wir mal davon aus, man hat sich jetzt ein bissl mit der Flashsoftware auseinander gesetzt und weiss mit den Begriffen Timeline, Keyframes, Symbolen usw. etwas anzufangen. Jetzt möchte man aber noch stä in die Tiefen von Flash bzw. ActionScript eintauchen. Dafür sollte man sich ein fundiertes Grundlagenwissen über die Flash API und über objektorientierte Programmierung (kurz: OOP) aneignen. Um diese Wissensaneignung zu bewerkstelligen, kann ich die zwei Bücher Essential ActionScript 3.0 (AS2-Version) von Colin Moock und Object-Oriented ActionScript 3.0 (AS2-Version) von Peter Elst empfehlen. Ergänzend dazu bieten die Bücher Foundation ActionScript vom Friends of ED Verlag und ActionScript 3.0 Cookbook(AS2-Version) einige sehr brauchbare Lösungsvorschläge für die alltäglichen Programmierprobleme an.

Ist das Grundlagenwissen gefestigt, kommt man nun zum abstrakteren Aufgabengebiet eines Flash Developers. Ein Flash Developer sollte nicht nur komplexe Algorithmen entwickeln können, sondern er sollte auch fit sein in der Erstellung von sehr leicht wartbarten und weiterentickelbaren Programmiercode. Damit dies möglich ist muss eine ordentliche Anforderungsanalyse von dem jeweiligen Problem erstellt werden. Wie man diesen Zustand erreicht, erklären sehr gut die Head First Bücher Objektorientierte Analyse und Design Patterns aus dem Hause OReilly. Obwohl die Bücher für die Programmiersprache Java geschrieben wurden, lassen sich die Beispiele wegen der sehr ähnlichen Syntax problemlos auf ActionScript Code anwenden. Diese Bücher gehören meiner Meinung nach zu einem absoluten PFLICHTPROGRAMM eines Developers, da die Qualität von Programmiercode an dieser Stelle massiv verbessert werden kann.

Ist auch dieser Schritt der fortgeschrittenen Wissensaneignung erledigt, kann man sich jetzt für die schon erreichte Leistung stolz auf die Schulter klopfen. Jedoch ist die Ausbildungsreise eines Flash Developers noch nicht abgeschlossen (wird sie auch nie sein). Auf jeden Fall ist man jetzt vollends bereit, sich in dir spezielleren Aufgabengebieten einzuarbeiten. So sollte man zum Beispiel in Sachen Flex als Flash Developer nicht ganz unwissend sein, da Flex doch den Produktionsablauf erheblich beschleunigen und unterstützen kann. Eine gute Flex Einführung gibt das Friends of ED Buch The Essential Guide to Flex 2 with ActionScript 3. Wer darüber hinaus eine etwas ausführlichere Einführung wünscht, dem sei das Flex 2 Buch von OReilly empfohlen. Weitere interessante Themen für einen Flash Developer sind (man wird aber nie alle Themen komplett abdecken können) die Entwicklung von Flash Inhalten auf Mobilen Endgeräten, Desktopanwendungen mit Apollo, komplexe Animationen, Game Development, Interface Design, Komponenten Entwicklung und der Flash Media Server. Mit all diesen speziellen Anwendungsfällen hat man doch eine ordentliche Auswahl, um seinen Schwerpunkt im Bereich Flash Development zusetzen.

Zu guter letzt möchte ich noch auf zwei interessante Artikel des Flashmagazine.com und der Computer Arts (Ausgabe:2007/09) zur Jobssituation von Flash Developern aufmerksam machen. Die Artikel sind sehr aufschlussreich und machen Mut den Weg als Flash Developer einzuschlagen. Schaut mal rein es lohnt sich!

-- UPDATE 22.10.2007 --
Mit welchen Tools und wie man als Flash Developer sein Produktions-Workflow verbessern kann, erklärt Jens Franke in seiner Tutorialreihe AS 3.0 Workflow Special sehr gut. Hier sollte man auch als erfahrener Flash Developer unbedingt mal vorbei schauen!

Flash und die Open Source Bewegung

June 24th, 2007 5 comments

osflash fisixengine animationpackage

Schon seit einiger Zeit schwirren einige Open Source Projekte im Flashbereich umher, die einen sind weniger interessant und andere dagegen sehr interessant. Besonders mit dem Erscheinen von ActionScript 3 sind einige interessante Projekte entstanden, wie Z.B. PaperVision3D, Fisix Engine, APE, wiiFlash und AS3 Data Structures in denen einiges an KnowHow, viel Arbeit und vor allem Potenzial für Flash Game Entwickler steckt. Auch den RIA-Entwickler wird geholfen mit den Framworks aswing, as2lib, Animation Package und Fuse, sowie den Tools AMFPHP (für PHP und Datenbankkommunikation) und dem RED5 Server (Videostreaming, Chatanwendunngen).

Ich freu mich riesig über diese aufopfernden Leistungen, die die Jungs da draussen für uns bringen. Einige Tools davon, nutze ich ja selber sehr gerne und ich bin auch für den Open Source Gedanken! Allein der damit verbundene Idealismus finde ich sehr gut. Aber was mir in letzter Zeit ein bissl Angst macht, ist wenn sich das Ganze im Flashbereich entwickelt, wie bei PHP. Mit PHP kann man heute höchstens noch mit MEGA aufwendigen Projekten sein Geld verdienen. Ich hoffe mich versteht jetzt keiner falsch, ich befürworte die Entwicklung von kostenlosen Tools, die mir ja eigentlich auch das Entwicklerleben leichter machen. Aber andererseits wird mir das Leben dadurch auch schwerer gemacht, denn mit was soll ich mein Geld verdienen, wenn plötzlich die schweren Sachen jetzt viel leichter umzusetzen sind und dass dann auch noch kostenlos (meine damit einen kostenlosen Produktinsbeschleuniger, wer will so etwas nicht?!). Ich mag Flash, ich mag auch Programmieren, aber ich mag auch von irgendwas leben können...Nur geht das dann nicht mehr, wenn plötzlich kleine Abi-Schüler meine damals aufwendigen Arbeiten mittels der neuen Frameworks für quasi umsonst machen. Früher hat man mit seinen eigenen Entwicklungstools (die man über Jahre mühsam aufgebaut hat) sein Geld verdient, heute bekommt man die Tools fast für umsonst durch OpenSource Projekte. Was ja auch super ist für Programmier-Experimente und für die Ausbildung neuer Mitstreiter. Aber mir macht es das finanzielle Überleben schwerer. Aufgrund diesen Umstands, habe ich im Internet nach Businessmodellen für den OpenSource Bereich gesucht. Das Ergebnis war, dass sich OpenSource auf langer Sicht sogar lohnt, jedoch in Grössenordnungen, die jenseits von meinen Entwicklungen sind und auch von den bisher laufenden Flash Projekten (ausser vielleicht der RED 5 Server)...

Vielleicht sehe ich das auch alles zu eng... ich hoffe nur dass es nicht so endet, wie z.B.: "Ah geiles Ding hat der da gemacht (kann Musik oder ein Framework sein), das zieh ich mir mal und hörs mir (bzw. benutze es) immer wieder an ". Was ich damit sagen will... so schön wie die ganze Arbeitserleichterung für die Anwender und der ganze geerntete Respekt für die Entwickler in der Szene ist. Davon allein kann man sich aber nicht ernähren! Ganz zu davon zuschweigen, wenn man eine Familie versorgen muss. Eine Lösung wäre es Vielleicht, wenn sich langsam eine Einstellung entwickelt, indem die Nutzer freiwillig für gute Projekte bezahlen bzw. spenden. Bei er Musik funzt es zum Teil schon. Dort werden die Leute (zumindest in meinem Umfeld) immer bezahlbereiter für gute Produktion zu zahlen, allein nur mit der Motivation das Label bzw. die Musikgruppe zu unterstützen, dass sie weiterhin geile Musik machen können. Über solch eine Entwicklung würde ich mich sehr freuen...

AS2: Interactive Webcam Package

June 14th, 2007 1 comment

iacamlogo_web singlelighttrack handon

Seit einiger Zeit spiele ich schon mit bildbasierter Interaktion rum (wie man es im meinen Experimenten Bereich gut sehen kann:-). Leider liesen sich die bisherigen Klassen nicht so einfach ohne Änderung für andere Experimente verwenden. Aus diesem Grund habe ich mich jetzt nochmal hingesetzt und die Klassen richtig aufgeräumt bzw. auch zum Teil verbessert.

Das Lichter Tracking arbeitet endlich auflösungsunabhängig (funzt somit auch in 640x480px) und wirft schön Events, die ihr mit einem einfachen Listener Objekt abrufen könnt.
Die CamButton Klasse wurde komplett überarbeitet. Es gibt jetzt eine CamButtonManager Klasse mit der man dann die Cam Buttons erzeugt, ganz nach dem Prinzip des Factory Pattern. Die CamButtonManager Klasse überprüft desweiteren ob der Button aktiv ist oder nicht und führt dementsprechend das Ereignis aus. Was mir aber am besten gefällt ist, dass jetzt in zwei verschiedenen Modi gearbeitet werden kann. Einmal der bisher bekannte Modus mit dem Differenzkey (wo man vorher ein Snapshotbild ohne User erstellen musste) und jetzt gibt es neuerdings noch dazu den Modus Motion Detection, der ganz nach dem Prinzip von Guy Watson arbeitet. Nur dass man bei meiner Version die Menge der Frameüberlagerungen zur Laufzeit einstellen kann. ;-p

Das wars auch schon im Groben an Neuerungen. Ich hoffe mit den Klassen kann jetzt jeder ein bissl schneller mit bildbasierter Interaktion herumspielen. Die Klassen könnt ihr euch mit Codebeispielen und einer ausführlichen Dokumentation hier runterladen:

Download: Interactive Webcam Package mit Klassendoku und Beispiel Codes

Ich würde mich sehr über euer Feedback freuen!

-- UPDATE 22.12.2007 --
Es gibt ein neues Update des Interactive Webcam Packages für ActionScript 3. Mehr Infos hier.

Flash Fortgeschritten Tutoriat SS2007

May 18th, 2007 5 comments

flash_tutoriat flashphp flashevents

Schon wieder verschlingt das Studium massiv meine Zeit. Im Moment kam ich leider nicht mehr dazu etwas Neues zu schreiben. Daran wird sich leider auch die nächsten 4-6 Wochen nichts gross ändern, da es mit meiner Thesis nicht ganz so läuft, wie ich es gerne hätte. Dazu kommt dann auch noch das Flash Fortgeschritten Tutoriat, welches ich mit Patrick Heneise an unserer Hochschule halte. Wir versuchen unseren Mitstudenten einige Grundlagen im Bereich Flash Entwicklung und Flash Media Server zu vermitteln.

Und genau in diesen Rahmen stelle ich euch hier meine Folien zum Thema Flash Objektorientiert, Flash und XML, Flash und PHP zur Verfügung. Die Folien geben einem geübten ActionScript-, PHP- sowie einen Java Programmierer eine gute Einführung in die OOP mit Flash und das Arbeiten mit dynamischen Inhalten. Als Ergänzung liegen den Folien noch kleine Codebeispiele bei. Ich hoffe, den ein oder anderen kann mit den Folien weiter geholfen werden.

Weiterhin werde ich versuchen euch so gut wie es geht mit News, neuen Links und Blog Updates zu versorgen... und ich hoffe doch sehr es springt auch mal wieder ein netter Blogeintrag heraus.

AudioVisuelles Jump and Run Game

April 27th, 2007 3 comments

avgame avplanung avconfig

Eigentlich ist ja jedes 0/8/15 Jump and Run Game mit seinen Spielesounds, Musik und der visuellen Darstellung audiovisuell. In meinem Spiele Experiment habe ich dagegen versucht die audiovisuellen Kanäle mit in die Interaktion einzubinden. Die Interaktion des Spiels basiert auf 3 Ebenen:

  • Die tradionelle haptische Eingabe über die die Tastatur (Linke und Rechte Preiltasten) - für das Vor- und Zurücklaufen der Hauptfigur.
  • Mithilfe der audiobasierten Interaktion (lautes Rufen in das Mikro) kann man die Hauptfigur springen lassen.
  • Die visuelle Interaktion wird mit Hilfe der Webcam und einer Lichtquelle umgesetzt. Die Position der Lichtquelle wird getrackt und steuert einen visuellen Schläger im Spiel an. Mithilfe des Schlägers kann man einen Ball so ablenken, dass der Ball einen Gegner treffen kann und diesen dann zerstört.

Hauptziel in meinem Spiel war es zu schauen wie das Game Play bzw. das Gefühl beim Spielen ist. Ob man vielleicht mit den gleichzeitigen Einsatz der verschiedenen Interaktionsebenen überfordert ist. Ich selber habe ein bissl gebraucht bis ich mich an die Steuerung gewöhnt hatte. Ich muss aber auch zugeben, dass ich überhaupt kein aktiver PC-Gamer bin und mich daher sowieso in solchen Sachen ein bissl schwer tue. Damit Ihr einen besseren Eindruck von dem Spiel bekommen könnt, habe ich ein Beispielvideo mit in das Experiment eingebunden. Dort gibts auch eine genauere Erklärung zur Bedienung des Games, sowie eine spielbare Version. Schaut mal rein und habt Spass. 🙂 Ich freu mich über jedes Feedback!

Nun aber zur technischen Umsetzung:
Der Aufbau und die Logik des Jump and Run Games basiert zum grössten Teil auf das Tile Based Game Tutorial von Tonypa. (Vielen Dank an dieser Stelle f&umlr dieses geniale Tutorial).
Da ich in Sachen Pixelgrafik nicht gerade gut bewandert bin, habe ich mich den Sprite Grafiken des Spielklassikers Super Mario bedient.
Für die Lautstärkenmessung benutzte ich die Standard Mikrofon-Klasse von Flash. Diese Klasse lieferte mir immer einen Lautstärkenwert zwischen 0 und 100 zurück. Ab einer Lautstärke von 30 fängt der Charakter an zu springen.
Die Steuerung des Schläger erfolgt mittels eines Lichttrackings, das aus meinen Webcam Lightwriter Version 2 Experiment stammt. Das Verfahren habe ich in einem älteren Blogeintrag schon näher erläutert, deswegen gibt es hierzu keine näheren Infos.
Perfomancemässig läuft das Spiel auf meinem 4 Jahren alten Laptop (2,4 GHZ Athlon, 512 MB Arbeitsspeicher) gerade so flüssig. Daher gehe ich davon aus, dass das Spiel leider für ältere bzw. schwächere PCs nicht zu empfehlen ist. Ideen zur Programmiercode Optimierung fallen mir momentan leider keine Guten ein.

Technische Anforderung:

  • - Flash Player 8 (ActionScript 2)
  • - Headset oder Mikrofon
  • - Webcam
  • - Lichtquelle (Taschenlampe oder Feuerzeug)
  • - PC mit ca. 2,4 GHz und 512 MB Arbeitsspeicher oder höher

Stärker Interessierte können sich gern den Sourcecode des Spieles runterladen. Aber seit vorab gewahnt. Der Code ist nicht gerade gut zulesen, da er kaum objektorieniert ist (Zum Teil auf Flash 5 besteht) und ich einige Bugs ein bissl dreckig korrigiert habe...

Download Sourcecode zum Game

-- UPDATE 22.05.2007 --
Stefan Gerbeth (ein Studienkollege) hat ein einen interessanten Link zu meinen Game gepostet. Das Interactive Cinema Game! 🙂 Lustiges Spiel!

Webcam – Lightwriter Version 2.0

April 16th, 2007 8 comments

singlelighttrack twolighttrack light2config

Nachdem mein Webcam Lightwriter Version 1.0 leider nicht bei allen Webcams so gut funktioniert hat (wegen Helligkeitsproblem), habe ich ein komplettes neue Trackingverfahren geschrieben. Ich arbeite jetzt nicht mehr mit der Funktion Bitmap.getColorBoundsRect(), sondern analysiere fast jedes Pixel des Webcambildes. Bei der ersten Version hatte ich massive Perfomance-Probleme bei der Helligkeitsüberprüfung. Die konnte ich dank eines Tipps meines WG-Kollegen Matze ziemlich einfach lösen. Ich sollte einfach das Webcam Bild in ein Schwarz/Weiss Bild umwandeln. Mit Hilfe des colorMatrixFilter von Matthias Kannengiesser wandelte ich das Webcambild um und hatte somit eine Art Graustufenbild (Helligkeitsbild). Dieses Graustufenbild wandelte ich wiederum mit Hilfe der Bitmap.threshold() Methode und einen variablen Schwellenwert in ein Binärbild um. So waren die hellen Punkte (Lichter) weiss und der Rest schwarz. Damit die Perfomance noch im Rahmen bleibt, skalierte ich das Bitmap auf 80x60 Pixel herunter. Diese Auflösung reichte in meinen Tests für ein erfolgreiches Tracking aus.

Nachdem ich das Bild jetzt endlich fertig bearbeitet hatte, ging es an das eigentlich Tracking. Ich suchte im Bild nach einem weissen Pixel, der noch zusätzliche weisse Pixel als Nachbarn hat (mind. 3 bis 4). Ist diese Bedingung erfüllt, ging ich davon aus, dass es sich an dieser Stelle um ein Licht handeln müsse. Um die Grösse des Lichtes zu ermitteln, überprüfte ich die immer aufeinander folgenden horizontalen Nachbarn nach der obigen (weissen Nachbar) Bedingung. Wenn diese Bedingung nicht mehr erfüllt ist, ging ich davon aus, dass ich die Breite des Lichtes grob ermittelt hatte. Nun musste ich die Höhe des Lichtes ermitteln. Die Höhe ermittelte ich genauso wie die Breite des Lichtes nur das ich die vertikal aufeinander folgenden Pixel überprüfte. Dieses gesamte Verfahren lieferte mir schon eine zufriedenstellende Information über die Position des Lichtes, aber nicht über die ungefähre Grösse. Denn bei der Breite war dieses Verfahren noch nicht stabil genug. Dieses Problem konnte ich aber mit einem einfachen Trick lösen. Ich halbierte die ermittelte Höhe des Lichtes und überprüfte dort (y= yWertLinksOben + lichtHöhe/2) nochmals alle horizontalen aufeinander folgenden Pixel nach weissen Nachbarn. Wenn diese ermittelte Breite grösser war (das ist sie in der Regel auch), übernahm ich diese als aktuelle Breite für das Licht. Am Ende dieses Verfahren gebe ich ein Rechteck-Objekt zurück, das genug Informationen zu der EINEN getrackten Lichtquelle beinhaltet.

Froh darüber, das ich das Tracking erfolgreich geschafft hatte (in Furtwangen), wollte ich es zu Hause bei meinen Eltern (in Ober-Mörlen) weiter verbessern. Und siehe da es funktioniert nicht mehr. Und warum?! Weil eine zweite Lichtquelle im Webcam Bild war. Mein Algortihmus wusste nie welches Licht jetzt getrackt werden sollte. Ein Differenzverfahren wollte ich nicht benutzen, da dadurch die Bildinformation meines Lichtes erheblich verändert werden kann und wegstellen konnte ich das Licht auch nicht, Grr. Da meiner Meinung nach, so etwas aber ein absoluter Standardfall sein könnte, kam mir die Idee mehrere Lichter zu tracken. Also hab ich mich wieder dran gesetzt um das Verfahren auch noch für mehrere Lichter fit zu machen. Lichter zu finden war ja zu diesem Zeitpunkt kein Problem mehr, nur mehrere Lichter zu finden ohne das dabei die Perfomance in die Knie geht, war da schon schwerer umzusetzen. Ich durfte einfach die schon überprüften Pixel nicht nochmals überprüfen - Wer sich den Algortihmus genau anschaut, wie ich die Grösse des Lichtes ermittle wird verstehen was ich meine - Als erstes wollte ich dann die überprüften Pixel mit einer anderen Farbe kennzeichnen, was mir aber das Webcambild im nach hinein verfälscht hätte. Und das fand ich gar nicht gut. Nächster Gedanke war es ein extra 2dim. Array (80x60) anzulegen und dies mit den Stadien 0=noch nicht überprüft und 1=schon überprüft zu belegen. Aber das war mir viel zu umständlich, bis auch hier mir wieder jemand den ultimativen Tipp gab, den nicht genutzten Alpha Kanal für dieses Problem zu nutzen (Dank hier an Helge - Stefan Eckert). Denn wenn der Alpha Kanal den Wert 255 hat, muss ich die Pixel überprüfen, wenn er den Wert 0 hat ist eine Überprüfung nicht mehr nötig. Mit Hilfe dieses Verfahren bekam ich alle Lichtquellen heraus gefiltert. Jetzt musste ich sie nur noch passend sotieren, so dass z.B. Lichtquelle 1 auch immer als Lichtquelle 1 erkannt wird. Das machte ich mit einem Distanzvergleich alter Trackingergbnisse mit den neuen Trackingergebnissen. Dort wo die Distanz zwischen den alten und neuen TrackingRechtecken am Geringsten ist, ist ein Paar gefunden und es musste sich um die gleiche Lichtquelle handeln. Ja und in meinen Tests mit 2-3 Lichtquellen funktioniert das auch ganz gut. Schaut mal rein.


Sourcecode Webcam Lightwriter Version 2.0

Webcam Lightwriter Version 1.0 wens dann doch noch interessiert. Die Vorschau der ersten Version gibts noch auf der Flashhilfe.de Seite anzuschauen

-- UPDATE 18.05.2007 --
Eine nette passende Interaktion für den Lightwriter. Danke Jonas für den Tipp!

-- UPDATE 17.06.2007 --
Die LightTracking Klasse wurde in Sachen Anwenderfreundlichkeit überarbeitet, so dass ihr diese Klasse super einfach für eure eigenen Experimente benutzen könnt. Den Download gibt es unter Interactive Webcam Package mit ausführlicher Doku und Beispielcode zum leichteren Einstieg.

Flash – ActionScript Bibliotheken und APIs

April 10th, 2007 3 comments

fuse animationpackage flashinterface

Eine kleine Sammlung von sehr guten Helferlein Klassen und umfangreicheren Klassenbibs für das Lösen grösserer Flashproblemen

Allgemein:

  • as2lib.org :AS 2 -verbessertes Event- und Error-Handling uvm.
  • Pixlib :AS 2 - Logging, Data Preloading uvm.
  • senocular.com :AS 1-3 - Utility-, Drawing und GUI Klassen uvm.
  • Data Structures :AS 3 - Datenstruktur Bibliothek
  • PaperVision 3D :AS2 und 3 - Flash 3d Bibliothek
  • flashsandy.org :AS 2-3 - Flash 3d API
  • motor2 :AS3 - Flash Physik Engine für Games und sonstiges
  • APE :AS3 - Flash 2D Physik Engine für Games

Filter und Animation:

  • Image Processing Bibliothek :AS 3 - Bildbearbeitungsklassen
  • popforge :AS 3 - Audiofilter und -bearbeitungs Framework und noch andere sehr brauchbare Dinge
  • flash-fmp.de :AS 1 und 2- Filter Managing Prototyp Klassen
  • Twease :AS2- datenschlanke Tweening Engine für Werbebanner und Komponenten
  • Fuse AS Animations- und Filter Bibliothek
  • robertpenner.com :AS1 und 2 - Easing Animations Klassen für Abbremsen und Beschleunigung
  • Animation Package :AS 2 und 3 - Animations Bibliothek
  • tweener :AS2 und 3 - Bibliothek für Tweenings

Interaktionsklassen:

  • aswing.org :AS 2 und 3 - Bibliothek für RIA GUIs
  • Yahoo! ASTRA :AS3 - Bibliothek für RIA GUIs
  • betriebsraum.de :AS 2 -Klassen für Menüleisten, Statusboxen, Browser- Usability usw.
  • flare :AS3 - API für interaktive Informationsvisualisierung

Datenkommunikation:

  • wiiflash.org :AS3- API für Wiimote und FLash
  • swxformat.org :AS2- Datenformat API für eine Art Flashremoting mit PHP (besonders gut geeignet für Mobile Endgeräte - Flash Lite)
  • amfphp.org :AS2- Flash Remoting API mit PHP
  • AMF.NET :AS2- Flash Remoting API mit .NET
  • Flashinterface :AS 2 und 3 - Kommunikation zwischen der AS Virtual Machine 1 und 2
  • Xpath4as2 :AS2 - Bibliothek für X-Path Funktionalität
  • Fzip :AS3- Klasse für Zip Daten Bearbeitung
  • SMTP Mailing :AS3- Klasse für Email-Funktionalität
  • JPEGencoder :AS3 - Speichern von .jpgs nur mittels Flash
  • PNGencoder :AS3 - Speichern von .pngs nur mittels Flash

Generell findet man immer wieder sehr interessante Projekte auf der osflash.org Seite, sowie auf der Seite actionscriptclasses.com gibt es desöfteren einen kleineren Helferlein ;-).

-- UPDATE 27.09.2007 --
Auf Google Code Project kann man eine ausführliche Auflistung vieler ActionScripts APIs und Bibs bekommen, ähnlich wie bei OSFlash. Dank an dieser Stelle an Simon Schweizer, der mich darauf aufmerskam gemacht hat!

Leckereien für den Web-Development Bereich

March 23rd, 2007 No comments

googlemaps flickrapi mashupfeed

Wer kennt es nicht, ein Kunde möchte auf seiner Homepage eine Anfahrtskizze zu seiner Firma haben. Weil aber das Nachzeichnen der Strasse von einer eingescannten Karte so unglaublich aufregend ist, gibt es jetzt eine neue Möglichkeit die Anfahrtskizze wirklich aufregend zu gestalten. So kann man jetzt z.B. die Karten von Google Maps auf seiner Homepage einbinden und dort die verschiedenen Anfahrtswege mit Hilfe der Google Maps API markieren. Diese Makierungen können wiederum mit kleinen Texte versehen werden, die dem Kunden die Anfahrt zur Firma immens erleichten können. Jetzt hat man aber nicht nur eine Karte mit einer Anfahrtsskizze und zusätzlichen Infos, nein, der Webbesucher kann jetzt sogar mit der Karte interagieren (rauszoomen, Karte verschieben, auf Hotpoints klicken usw.). Durch das Eingreifen in die Kartendarstellung kann sich der Website Besucher viel besser orientieren und bekommt dadurch einen wichtigen Informationsmehrwert gegenüber der üblichen Anfahrtsskizze geliefert. An diesem Beispiel kann man gut sehen, dass die neuen Web-APIs auf jeden Fall sinnvoll zu gebrauchen sind und nicht nur als Spielerei abgetan werden können. Deshalb sind diese WEB-APIs, Web-Services und Mash-Ups die absoluten Leckereien für den Web-Development Bereich, denn man kann mit wenig Aufwand grosse Funktionalität (und auch Content) liefern, wie sie vor 3-5 Jahren noch nicht möglich waren. Einen Zugriff auf diese WEB-APIs erhält man meistens über diverse JavaScript- und Ajax Klassen. Desweiteren unterstützen die meisten serviceanbieter noch die üblichen Web-Service Standards WSDL und SOAP (Web-Services kann man sich als entfernte Methoden Aufrufe mit Hilfe von XML verstehen) . Bei den großen Playern im Webbereich gehören solche Web-APIs und Web-Services mittlerweile schon zum Standard. Hier eine kleine Auflistung der API und Web-Service Bereiche der grossen Web-Player:

Besonders im WEB 2.0 Bereich gehören die APIs zum guten Ruf bzw. zum Pflichtprogramm. Deshalb hier einige APIs der großen Web 2.0 Player

Die Liste müsste jetzt eigentlich noch viel viel weiter gehen, aber zum Glück gibt es schon Websiten, die das mit Bravour erledigt haben. Auf den folgenden 3 Portalen solltet ihr euren gesuchten Service finden.

Wie mit Allem hören sich auch hier die Leckereien auf dem ersten Blick super an. Doch damit der Schuss nicht nach hinten losgeht, gibt es vor der Verwendung solcher Services einige Dinge zu beachten. Die Nutzungsbedingungen werden in der Regel immer schnell (ohne Lesen 😉 ) akzeptiert, doch in unserem Fall, sollte man sich diese gut anschauen. Denn bei einem Verstoss gegen die Nutzungsbedingungen könnte es schnell zu einer (gerichtlichen) Abmahnung kommen, das kann im schlimmsten Fall eine schöne Geldsrafe sein, was wiederum das Projektbudget belastet. Ein weiterer Punkt ist die Seriösität des Serviceanbieters. Ein seriöser Serviceanbieter liefert auf jeden Fall immer valide Daten, seine Services sind zu jeder Zeit verfügbar und er liefert einen guten Support (Dokumentation) seiner Services. Der Support sollte unter anderem unbedingt dem Website-Developer bei Änderungen des jeweiligen Services benachrichtigen. Denn eine Veränderung des Services (oder API) kann eine Änderung des Programmcodes innerhalb der Website erzwingen. All diese Punkte sollte der Website-Developer unbedingt bei einer Einbindung solcher Services in seiner Website Produktion beachten. Tut er/sie das, dann sollte ein einwandfreier Betrieb der nextGeneration Website kein Problem mehr sein.

-- UPDATE 26.03.2007 --
Ein super Beispiel für den Einsatz von Webservices ist die Web-Anwendung netvibes.com. Desweiteren kann ich euch noch ein PHP und WebService Tutorial empfehlen, sowie den Online Artikel XML-RPC und PHP vom XML Magazin.

-- UPDATE 9.05.2007 --
Ich bin mal wieder auf interessante Links gestossen. Auf webservicex.net sind einige nützliche Web Services aufgezählt, wie z.B. validieren einer Kreditkartenummer oder Einheitenumrechner. Wenn es euch an Content fehlt, könnten evtl. der xml-feed.de und / oder der rss-scout.de weiterhelfen.