| //////////////////////////////////////////////////////////////////////////////// |
| // |
| // Licensed to the Apache Software Foundation (ASF) under one or more |
| // contributor license agreements. See the NOTICE file distributed with |
| // this work for additional information regarding copyright ownership. |
| // The ASF licenses this file to You under the Apache License, Version 2.0 |
| // (the "License"); you may not use this file except in compliance with |
| // the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| //////////////////////////////////////////////////////////////////////////////// |
| package { |
| import flash.display.Graphics; |
| import flash.display.Sprite; |
| import flash.geom.Rectangle; |
| import flash.text.engine.ElementFormat; |
| import flash.text.engine.FontDescription; |
| import flash.text.engine.TextBlock; |
| import flash.text.engine.TextElement; |
| import flash.text.engine.TextLine; |
| |
| import flashx.textLayout.compose.IFlowComposer; |
| import flashx.textLayout.compose.StandardFlowComposer; |
| import flashx.textLayout.container.ContainerController; |
| import flashx.textLayout.conversion.TextConverter; |
| import flashx.textLayout.edit.EditManager; |
| import flashx.textLayout.edit.ISelectionManager; |
| import flashx.textLayout.elements.TextFlow; |
| import flashx.textLayout.formats.TextLayoutFormat; |
| import flashx.textLayout.formats.TextLayoutFormat; |
| |
| /** Simple example of two form fields with editable text. The text only breaks lines on paragraph ends or hard line breaks. */ |
| public class ShowAtomBounds extends Sprite |
| { |
| public function ShowAtomBounds() |
| { |
| super(); |
| var textSprite:Sprite = buildFTEExample("IJ"); |
| addChild(textSprite); |
| } |
| |
| /** build FTE data each time */ |
| public function buildFTEExample(sampleText:String):Sprite |
| { |
| var r:Rectangle; |
| var elementFormat:ElementFormat = new ElementFormat(); |
| elementFormat.fontDescription = new FontDescription("Arial"); |
| // elementFormat.fontDescription = new FontDescription("Arial Black"); |
| elementFormat.fontSize = 48; |
| var textElement:TextElement = new TextElement(sampleText, elementFormat) |
| var textBlock:TextBlock = new TextBlock(textElement); |
| var textLine:TextLine = textBlock.createTextLine(); |
| var sprite:Sprite = new Sprite(); |
| sprite.addChild(textLine); |
| sprite.x = 100; |
| sprite.y = 100; |
| sprite.graphics.lineStyle(1, 0xFF0000); |
| trace("line contains", textLine.atomCount, "atoms"); |
| for (var i:int = 0; i < textLine.atomCount; i++) |
| { |
| r = textLine.getAtomBounds(i); |
| sprite.graphics.moveTo(r.left, r.top); |
| sprite.graphics.lineTo(r.right, r.top); |
| sprite.graphics.lineTo(r.right, r.bottom); |
| sprite.graphics.lineTo(r.left, r.bottom); |
| sprite.graphics.lineTo(r.left, r.top); |
| trace("\t atom", i, "bounds is", r.toString()); |
| } |
| return sprite; |
| } |
| |
| } |
| } |