13.08.2012 Views

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

ACTIONSCRIPT 3 Developer’s Guide en

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>ACTIONSCRIPT</strong> 3.0 DEVELOPER’S GUIDE<br />

Keyboard input<br />

package {<br />

import flash.geom.Rectangle;<br />

import flash.display.Sprite;<br />

import flash.text.<strong>en</strong>gine.TextElem<strong>en</strong>t;<br />

import flash.text.<strong>en</strong>gine.TextBlock;<br />

import flash.ev<strong>en</strong>ts.MouseEv<strong>en</strong>t;<br />

import flash.ev<strong>en</strong>ts.FocusEv<strong>en</strong>t;<br />

import flash.ev<strong>en</strong>ts.KeyboardEv<strong>en</strong>t;<br />

import flash.text.<strong>en</strong>gine.TextLine;<br />

import flash.text.<strong>en</strong>gine.Elem<strong>en</strong>tFormat;<br />

import flash.ev<strong>en</strong>ts.Ev<strong>en</strong>t;<br />

public class TextInput ext<strong>en</strong>ds 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 textElem<strong>en</strong>t: TextElem<strong>en</strong>t;<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 />

}<br />

//Enable keyboard support<br />

this.needsSoftKeyboard = true;<br />

this.addEv<strong>en</strong>tList<strong>en</strong>er(MouseEv<strong>en</strong>t.MOUSE_DOWN, onSelect);<br />

this.addEv<strong>en</strong>tList<strong>en</strong>er(FocusEv<strong>en</strong>t.FOCUS_IN, onFocusIn);<br />

this.addEv<strong>en</strong>tList<strong>en</strong>er(FocusEv<strong>en</strong>t.FOCUS_OUT, onFocusOut);<br />

//Setup text <strong>en</strong>gine<br />

textElem<strong>en</strong>t = new TextElem<strong>en</strong>t( text, new Elem<strong>en</strong>tFormat( null, textSize, textColor ) );<br />

textBlock.cont<strong>en</strong>t = textElem<strong>en</strong>t;<br />

var firstLine:TextLine = textBlock.createTextLine( null, _bounds.width - 8 );<br />

firstLine.x = 4;<br />

firstLine.y = 4 + firstLine.totalHeight;<br />

this.addChild( firstLine );<br />

private function onSelect( ev<strong>en</strong>t:MouseEv<strong>en</strong>t ):void<br />

{<br />

stage.focus = this;<br />

}<br />

private function onFocusIn( ev<strong>en</strong>t:FocusEv<strong>en</strong>t ):void<br />

{<br />

this.addEv<strong>en</strong>tList<strong>en</strong>er( KeyboardEv<strong>en</strong>t.KEY_DOWN, onKey );<br />

}<br />

private function onFocusOut( ev<strong>en</strong>t:FocusEv<strong>en</strong>t ):void<br />

{<br />

this.removeEv<strong>en</strong>tList<strong>en</strong>er( KeyboardEv<strong>en</strong>t.KEY_UP, onKey );<br />

}<br />

Last updated 6/6/2012<br />

569

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

Saved successfully!

Ooh no, something went wrong!