Laszlo 4 dummies
Rich client applications. Supponiamo che sappiate cosa sono ed entriamo nel vivo di come realizzare un prototipo con tecnologia Flash.
Al momento, fra le tante cose disponibili, si trovano Flex,un tool spettacolare (non del tutto free) della Adobe e questo (free in alcune versioni/condizioni) che è abbastanza facile da imparare e utilizzeremo in questo esempio.
Obiettivo: realizzare un menu che somigli al DirectoryIndex, ovvero che dinamicamente mostri un link per ogni directory in un certo percorso del server. E’ utile? Bè, proprio per la sua dinamicità permette di essere utilizzato come componente in applicazioni più evolute. E poi permette di dare un tocco grafico che nessuno immagina dietro le quinte il banale comando “ls”
Avremo una pagina index.html che caricherà il file swf prodotto con Laszlo. Il componente flash caricherà una lista di directory presa da un flusso xml. Questo flusso, generato a sua volta da una pagina php (esempio di interrogazione di un servizio HTTP), ci permette di arricchire il DirectoryIndex con dei commenti e delle logiche personalizzate. Esiste infine un file xml dove vendono scritti i commenti da usare per i link e che rappresenta un datasource.
Ultima nota: la pagina php che espone il servizio “elencaApplicazioni” è invocabile anche direttamente (infatti index.html contiene un link diretto nel caso il browser non supporti flash) per far vedere la logica di base per esporre un servizio sia in html-plain che Ajax-like.
Un po’ di disegni:
Alcuni snippet di codice:
index.lzx
dataset name=”mydata” type=”http” request=”true” xsrc=”elencaApplicazioni.php?format=xml” mce_src=”elencaApplicazioni.php?format=xml”
per puntare ad un datasource
class name=”applicazione” height=”85″ bgcolor=”0xD6D6E7″ width=”100%”
così si creano gli oggetti grafici, una gerarchia ad oggetti tipo Swing, per avere un pannello che raccoglie gli n links
basebutton resource=”tab_top_mid” clickable=”true” stretches=”both”
…method event=”onclick”
e così si specializza il comportamento ad esempio di un bottone con i simpatici effetti di movimento tipici di Flash
image resource=”freccia” onclick=”LzBrowser.loadURL(this.parent.parent.titolo.nomeApp.getText())”
interagiamo con il browser per guidare la navigazione
view datapath=”mydata:/applicazioni” x=”2″ y=”40″ clip=”true”
iterazione su tutto il datasource per costruire la lista dei bottoni, ciascuno è un’istanza della classe BaseButton dichiarata prima
elencaApplicazioni.php
$contents = fread($handle, filesize($filename));
si recupera il file xml di dati (o l’output di ls o query su db)
$mode = $_GET[’format’];
if ($mode==’xml’) {
header (”content-type: text/xml”);
echo $contents;
per capire se bisogna rispondere in html o xml
else {
xml_parse($xml_parser, $contents, true);
foreach ($lista as $param) {
echo …
creazione pagina html plain
Risultato finale:
Da qui in avanti…
ma lo sapete che Laszlo ha una componente server, da installare sul vostro web application layer, che elabora i file lzx a runtime? è quindi immediato editare il sorgente e rigenerare il componente flash. Anzi, in alcuni scenari non ci si preoccupa nemmeno di fare il packaging finale del file swf ma si lasciano direttamente in link ai file lzx…
e sapete che lo stesso file lzx invece di produrre un oggetto flash può, dalla versione 4, produrre del dhtml? Date un occhio a our-first-iphone-app
alla prossima!