Jodo-Milano.2008-09_035Zoo2006-10-07_043Slovenia2009-04_658norge5oslo_169Kuortti.2010-06-26Kuortti.2010-06-26italia2005-05_131Kuortti.2010-06-26Pakkas03Pitkanen_076Nanbudo_Norge2007-12_211Saaristoleiri 2009-08 34South.Africa.Roadtrip.2007-08_353Inujima, Japan 2010-04-30Oslo.Norway.2002.summer.034Naginata Helsinki 2010-02-07 09Vesa-Rauttu-60v_1899Helsinki2005-10-15_16_042Kobe, Japan 2010-05-01Somero2002_02Kobe, Japan 2010-04-28Saaristoleiri-Uto-2008_180Helsinki2005-10-15_16_019
Doberman Pinscher puppies

Tabbing between text fields

Tabbing between text fields has a great effect on the usability of an Flash application. This example just simply demonstrates it. Use space key to enable/disable the tabEnabled property.

package
{
    import flash.display.*;
    import flash.events.Event;
    import flash.events.FocusEvent;
    import flash.events.KeyboardEvent;
    import flash.text.*;
    import flash.ui.Keyboard;

    [SWF(backgroundColor = '0x5B5B5B', frameRate = '33', width = '600', height = '400')]

    public class TextFieldTabbing extends Sprite
    {
        private var _format:TextFormat = new TextFormat("Verdana", 10, 0x121212);
       
        private var _enableTab:Boolean = true;

        public function TextFieldTabbing()
        {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            loaderInfo.addEventListener(Event.INIT, onInit);
        }

        private function onInit(event:Event):void
        {
            createFields();
            stage.addEventListener(KeyboardEvent.KEY_UP, onKey);
        }
       
        private function onKey(event:KeyboardEvent):void
        {
            if (event.keyCode == Keyboard.SPACE)
            {
                _enableTab = !_enableTab;
                createFields();
            }
        }
       
        private function onFieldFocus(event:FocusEvent):void
        {
            var field:TextField = event.target as TextField;
            swapChildren(field, getChildAt(numChildren - 1));
        }
       
        private function createFields():void
        {
            // Clear existing if any
            var num:int = numChildren - 1;
            while (num >= 0)
            {
                removeChildAt(num);
                --num;
            }
           
            var limit:uint = 55;
            for (var i:uint = 0; i < limit; ++i)
            {
                var field:TextField = createField("This is " + i);
                field.tabIndex = i;
                field.addEventListener(FocusEvent.FOCUS_IN, onFieldFocus);
                field.x = Math.random() * (stage.stageWidth - field.width);
                field.y = Math.random() * (stage.stageHeight - field.height);
                addChild(field);
            }
        }

        private function createField(text:String):TextField
        {
            var field:TextField = new TextField();
            field.background = true;
            field.backgroundColor = Math.random() * 0xFFFFFF;
            field.border = true;
            field.borderColor = 0x000000;
            field.defaultTextFormat = _format;
            field.text = text;
            field.autoSize = TextFieldAutoSize.LEFT;
            field.type = TextFieldType.INPUT;
           
            // Is true if TextField.type == TextFieldType.INPUT
            field.tabEnabled = _enableTab;
           
            return field;
        }
    }
}

TextFieldTabbing.swf

Time: 19/07/2009 21:32

QR code for paazio.nanbudo.fi