15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Tastatureingabe<br />

Unterstützung von virtuellen Tastaturen für interaktive Objekte<br />

Flash Player 10.2 und höher, AIR 2.6 und höher (unter iOS nicht unterstützt)<br />

Normalerweise wird die virtuelle Tastatur nur geöffnet, wenn der Benutzer auf ein TextField-Objekt tippt. Sie können<br />

eine Instanz der InteractiveObject-Klasse so konfigurieren, dass die virtuelle Tastatur geöffnet wird, wenn die Instanz<br />

den Fokus erhält.<br />

Um eine InteractiveObject-Instanz so zu konfigurieren, dass sie die Softwaretastatur öffnet, setzen Sie ihre<br />

needsSoftKeyboard-Eigenschaft auf true. Die Softwaretastatur wird immer automatisch geöffnet, wenn das Objekt<br />

der focus-Eigenschaft der Bühne zugewiesen wird. Sie können die Tastatur auch einblenden, indem Sie die<br />

requestSoftKeyboard()-Methode der InteractiveObject-Instanz aufrufen.<br />

Das folgende Beispiel zeigt, wie Sie eine InteractiveObject-Instanz als Texteingabefeld programmieren. Die im Beispiel<br />

gezeigte TextInput-Klasse stellt die needsSoftKeyboard-Eigenschaft so ein, dass die Tastatur bei Bedarf eingeblendet<br />

wird. Das Objekt wartet dann auf keyDown-Ereignisse und fügt das eingegebene Zeichen in das Feld ein.<br />

Im Beispiel wird die Flash Text Engine verwendet, um eingegebenen Text anzufügen und anzuzeigen. Außerdem<br />

werden einige wichtige Ereignisse verarbeitet. Der Einfachheit halber ist im Beispiel kein Textfeld mit vollem<br />

Funktionsumfang implementiert.<br />

package {<br />

import flash.geom.Rectangle;<br />

import flash.display.Sprite;<br />

import flash.text.engine.TextElement;<br />

import flash.text.engine.TextBlock;<br />

import flash.events.MouseEvent;<br />

import flash.events.FocusEvent;<br />

import flash.events.KeyboardEvent;<br />

import flash.text.engine.TextLine;<br />

import flash.text.engine.ElementFormat;<br />

import flash.events.Event;<br />

public class TextInput extends Sprite<br />

{<br />

public var text:String = " ";<br />

public var textSize:Number = 24;<br />

public var textColor:uint = 0x000000;<br />

private var _bounds:Rectangle = new Rectangle( 0, 0, 100, textSize );<br />

private var textElement: TextElement;<br />

private var textBlock:TextBlock = new TextBlock();<br />

public function TextInput( text:String = "" )<br />

{<br />

this.text = text;<br />

this.scrollRect = _bounds;<br />

this.focusRect= false;<br />

//Enable keyboard support<br />

this.needsSoftKeyboard = true;<br />

this.addEventListener(MouseEvent.MOUSE_DOWN, onSelect);<br />

this.addEventListener(FocusEvent.FOCUS_IN, onFocusIn);<br />

this.addEventListener(FocusEvent.FOCUS_OUT, onFocusOut);<br />

//Setup text engine<br />

textElement = new TextElement( text, new ElementFormat( null, textSize, textColor ) );<br />

Letzte Aktualisierung 27.6.2012<br />

603

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!