Saaristoleiri-Uto-2008_180playa06secret_552Kobujutsu
Stadion
2011-12-17
2Need for
umbrella
in Kobe
2011-06-10Saaristoleiri
2009-08
34Vesa-Rauttu-60v_1899South.Africa.Roadtrip.2007-08_216Pakkas03Pitkanen_076Zoo2006-10-07_043Saaristoleiri-Uto-2008_177Kyoto
2011-05-04
Shimogamo
Jinja,
Ryukyu
Kobujutsu
- Bo
kumiteOslo
2010-12-03Hannan-ja-Esan-haat.20100822.131652.703Kuortti.2010-06-26Kuortti.2010-06-26Shiga,
Japan
2010-04-18Nanbudo_Norge2007-12_038italia2005-05_131Hannan-ja-Esan-haat.20100821.180134.503Inujima,
Japan
2010-04-30norge5oslo_169Helsinki2005-10-15_16_042
Luna sleeping at the office

In the office of Lulop.com at Travaco, Pavia in the county of Italy, the puppy named Luna (the moon) takes a nap.

TextField background with a limit on width

This example demonstrates setting a maximum width to a multi line text field in Actionscript 3. For this text field a background is drawn based on its content size. A non limited width version is also available.

package {
    import flash.display.*;
    import flash.events.*;
    import flash.geom.*;
    import flash.text.*;

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

    public class TextFieldWidthLimit extends Sprite {

        private var format:TextFormat;
        private var field:TextField;
        private var background:Shape;

        /*
         * Word warp before the limit is reached
         */
        private var widthLimit:Number = 320;

        public function TextFieldWidthLimit() {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.quality = StageQuality.MEDIUM;

            background = new Shape();
            background.x = 10;
            background.y = 10;
            this.addChild(background);

            format = new TextFormat();
            format.font = "Verdana";
            format.color = 0x000000;
            format.bold = true;
            format.size = 12;
            format.align = TextFormatAlign.LEFT;

            field = new TextField();
            field.autoSize = TextFieldAutoSize.LEFT;
            field.antiAliasType = AntiAliasType.ADVANCED;
            field.defaultTextFormat = format;
            field.type = TextFieldType.INPUT;
            field.width = widthLimit;
            field.multiline = true;
            field.wordWrap = true;
            field.text = "Advanced anti-aliasing allows font faces to be rendered at very high quality at small sizes.\n\nAdvanced anti-aliasing is not recommended for very large fonts (larger than 48 points).";
            field.x = background.x;
            field.y = background.y;
            field.addEventListener(TextEvent.TEXT_INPUT, onTextChange);
            this.addChild(field);

            this.graphics.lineStyle(1, 0xFFFFFF, 0.5);
            this.graphics.moveTo(widthLimit + background.x, 0);
            this.graphics.lineTo(widthLimit + background.x, stage.stageHeight);

            drawBackground();
        }

        private function drawBackground():void {
            var rect:Rectangle = field.getRect(this);
            var w:Number = 0;
            for (var i:uint = 0; i < field.numLines; i++) {
                var metr:TextLineMetrics = field.getLineMetrics(i);
                if (metr.width > w) {
                    w = metr.width;
                }
                trace("Line " + i + " width: " + metr.width);
            }

            if (w >= widthLimit) {
                w = widthLimit;
            }

            field.width = w;
            field.height = field.textHeight;

            var gra:Graphics = background.graphics;
            gra.clear();
            gra.beginFill(0xFFFFFF);
            gra.lineStyle(1, 0x000000);
            gra.drawRoundRect(0, 0, field.width + 2, field.height + 2, 6, 6);
        }

        private function onTextChange(evt:TextEvent):void {
            drawBackground();
        }
    }
}

TextFieldWidthLimit.swf

Time: 25/04/2008 20:36

QR code for paazio.nanbudo.fi