26.02.2014 Aufrufe

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!