Mai 21 2009

Flex und Dropdown Menüs mit mehreren Ebenen

Tag: Adobe,FlexKonstantin Elstner @ 13:10

Nach dem ich gestern mehrere Stunden damit verbacht hatte, nach eine Flexkomponente zu suchen die es ermöglicht Dropdown-Menüs mit mehreren Leveln zu erstellen, will ich die Suchergebnisse nicht vorenthalten.

Wirklich viele Komponenten gibt es leider nicht und das Web ist immer so flüchtig, irgendwann hatte ich schon einmal eine gute Komponente hierfür gefunden, aber leider nicht in die Bookmarks gezogen.

Eine sehr gute Sammlung an Komponenten unter der MIT Lizense gibt es unter dem Projektnamen ‚flexlib‘ die bei code.google.com erhältlich ist.

Für das Menüproblem eignet sich am besten die Klasse ‚ScrollablePopUpMenuButton‘ die multilevel Dropdown Menüs unterstützt (unterstes Beispiel). Nach einer Analyse der Beipiele kann das Dropdown Menü an jedem beliebigen Button positioniert werden und lässt sich somit in eine eigenen Layer über dem Content einblenden.

Ansonsten beinhaltet ‚flexlib‘noch unzählige andere Klassen für verschiedenste Probleme, wie zB. die Markierung von Wörtern in einem Text, nach denen gesucht wird.

Schaut es euch einfach an 😉


Jan 05 2009

Flex3 Remoteobject auf Basis von AMF0

Tag: AdobeKonstantin Elstner @ 12:32

Bei einem  aktuellen Projekt das auf amfPHP / openAMF und Flex 3 basierte stieß ich auf das Problem, dass openAMF leider nur das AMF0 Protokoll unterstützt.

Leider bemerkte ich erst recht spät das der Java-Fork von amfPHP nicht mehr wirklich weiter entwickelt wird.

Aus Zeitgründen war ein umschwenken auf einen anderen Gateway nicht mehr möglich daher musste ich das Problem direkt angehen.

Da sich das RemoteObject von Flex 3 nach meiner Recherche nicht wirklich auf den AMF0 Standard konvertieren lässt sah ich mich genötigt längere Zeit zu recherchieren 😉

Durch einen kleinen Zufall stieß ich dann zum Glück auf den Entwickler Renaun Erickson der auf diesem Gebiet mit seiner Klasse RemoteObjectAMF0 schon ganze Arbeit geleistet hat.

Die Verwendung ist denkbar einfach und stark an dem Flex3 RemoteObject angelehnt:

<renaun:RemoteObjectAMF0 id=“roDbQuery“ endpoint=“gateway“ destination=“amfphp“ showBusyCursor=“true“ source=“de.dashart.DbQuery“ fault=“onRPCerror(event)“>
<renaun:methods>
<renaun:method name=“checkLogin“ result=“onLogin(event)“ />
</renaun:methods>
</renaun:RemoteObjectAMF0>

Einzig und allein die Übergabe von Argumenten variiert leicht, die Agumente werden hier nicht als ‚arguments‘ übergeben sondern direkt beim Aufruf eingebunden:

roDbQuery.checkLogin( _user, _pwd );

Much thx to Renaun Erickson 😉