smart developer Ein Code für alle (Vorschau)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Entwicklung<br />
Blackberry PlayBook<br />
Eventhandler müssen einen Parameter annehmen.<br />
Aus diesem Grund passen Sie die<br />
Definition der Formular-Erstellungsmethode<br />
folgendermaßen an:<br />
{<br />
}<br />
clearWindow();<br />
baseForm();<br />
private function greetingForm(event:MouseEvent<br />
):void<br />
Damit ist das Programm <strong>für</strong> einen ersten Test<br />
bereit. Das Resultat eines Klicks auf den<br />
HelloWorld-Button zeigt Abbildung 7.<br />
Beim genaueren Betrachten des Bildes erschließt<br />
sich der Sinn dieses Formularaufbaus:<br />
Anstatt die Steuerelemente direkt ins<br />
Formular einzubauen, packen wir sie in<br />
einen Container. Container sind spezielle<br />
Steuerelemente, die die enthaltenen Steuerelemente<br />
(oder Subcontainer) ordnen. Würden<br />
wir unserem Container ein zweites Label<br />
hinzufügen, erschiene es unter dem ersten.<br />
Wie im ersten Formular gezeigt, kann man<br />
die Koordinaten der einzelnen Steuerelemente<br />
auch von Hand berechnen und festlegen.<br />
Layouts machen die Arbeit jedoch wesentlich<br />
leichter.<br />
Gebt mir ein Menü<br />
Damit bleibt nur mehr ein Problem: Wie<br />
kommt der User wieder aus dem greeting‐<br />
Form zum baseForm zurück? Die beste Lösung<br />
da<strong>für</strong> wäre das Verwerten des am Anfang des<br />
Artikels besprochenen Menü-Strokes über<br />
einen Eventhandler:<br />
QNXApplication.qnxApplication.addEventListener<br />
(QNXApplicationEvent.SWIPE_DOWN, swipeDown);<br />
Die Handler-Routine der Anwendung sieht in<br />
unserem Fall so aus:<br />
private function swipeDown(event:QNXApplicatio<br />
nEvent):void<br />
In der Praxis könnte man hier beispielsweise<br />
eine Reihe von Knöpfen (in der Form eines<br />
neuen Formulars oder zweiten Sprites) anzeigen,<br />
um komplexere Layouts zu realisieren.<br />
Je nach Zweck lohnt es sich dabei, die<br />
Steuerelemente als Klassenvariablen zu deklarieren.<br />
Wie das in ActionScript aussieht,<br />
zeigt Listing 3.<br />
<strong>Ein</strong> eigenes Icon<br />
Bis dato zeigte unsere Anwendung ein langweiliges<br />
Defaulticon im Programmstarter an,<br />
das soll sich nun ändern. Unser zukünftiges<br />
Symbol muss im PNG-Format vorliegen und<br />
sollte nach Möglichkeit mindestens 72 x 72<br />
Pixel groß sein.<br />
Sie binden das Symbol über die Importieren-Funktion<br />
ein, die Sie durch einen Rechtsklick<br />
auf das Projekt finden. Das Minibild<br />
landet danach im Ordner src. Zusätzlich<br />
braucht das Programm eine .xml-Datei, die<br />
das Icon mit dem Desktop des Playbooks bekannt<br />
macht. Dazu wählen Sie per Rechtsklick<br />
den src-Ordner aus und erstellen eine<br />
neue Datei namens blackberry‐tablet.xml.<br />
Den Inhalt zeigt Listing 4. Bei einem transparenten<br />
PNG setzen Sie den <strong>Ein</strong>trag transparent<br />
auf true. Zusätzlich passen Sie in der<br />
Datei app.xml die Informationen zur benutzten<br />
Grafik an und legen entsprechende Copyright-Hinweise<br />
an. In der Grundeinstellung<br />
fehlen diese Informationen.<br />
Listing 2: Das Greeting-Formular<br />
<strong>Ein</strong>gepackte Dateien<br />
Große ActionScript-Objekte werden schnell<br />
unübersichtlich. Daher ist es sinnvoll, sie in<br />
mehrere Dateien aufzuteilen. Um die einzelprivate<br />
function greetingForm():void<br />
myFormat.align = "center";<br />
{<br />
clearWindow();<br />
var text:TextField = new<br />
TextField();<br />
text.text = "Hallo Welt";<br />
var myContainer:Container=new<br />
Container;<br />
myContainer.flow=ContainerFlow.<br />
VERTICAL;<br />
var myFormat:TextFormat = new<br />
TextFormat();<br />
text.setTextFormat(myFormat);<br />
text.width=800;<br />
myContainer.addChild(text);<br />
myContainer.setSize(stage.<br />
stageWidth,stage.stageHeight*0.7);<br />
myFormat.color = 0xAA0000;<br />
myFormat.size = 60;<br />
myFormat.italic = true;<br />
}<br />
addChild(myContainer);<br />
76<br />
02/2011 <strong>smart</strong>-<strong>developer</strong>.de