Chapter 18 Example 6
♥0 |
Line 71 |
Modified 2009-12-14 12:30:14 |
MIT License
archived:2017-03-09 13:08:19
ActionScript3 source code
/**
* Copyright actionscriptbible ( http://wonderfl.net/user/actionscriptbible )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/xlLn
*/
package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.utils.setTimeout;
import flashx.textLayout.compose.StandardFlowComposer;
import flashx.textLayout.container.ContainerController;
import flashx.textLayout.container.ScrollPolicy;
import flashx.textLayout.conversion.ITextImporter;
import flashx.textLayout.conversion.TextConverter;
import flashx.textLayout.edit.EditManager;
import flashx.textLayout.elements.TextFlow;
import flashx.undo.UndoManager;
public class ch18ex6 extends Sprite {
protected var textFlow:TextFlow;
protected var editManager:EditManager;
public function ch18ex6() {
var loader:URLLoader = new URLLoader(new URLRequest(
"http://actionscriptbible.com/files/alice-ch2-tlf.xml"));
loader.addEventListener(Event.COMPLETE, onLoadComplete);
}
protected function onLoadComplete(event:Event):void {
var tlfMarkup:String = URLLoader(event.target).data;
var flowComposer:StandardFlowComposer = new StandardFlowComposer();
var importer:ITextImporter =
TextConverter.getImporter(TextConverter.TEXT_LAYOUT_FORMAT);
importer.throwOnError = true;
textFlow = importer.importToFlow(tlfMarkup);
textFlow.flowComposer = flowComposer;
var l:Loader = new Loader(); addChild(l);
l.x = 10; l.y = 130;
l.load(new URLRequest("http://actionscriptbible.com/files/alice-1.jpg"));
var sprite:Sprite, container:ContainerController;
sprite = new Sprite(); addChild(sprite);
sprite.x = 10; sprite.y = 10;
container = new ContainerController(sprite, 430, 120);
container.horizontalScrollPolicy = ScrollPolicy.OFF;
container.verticalScrollPolicy = ScrollPolicy.OFF;
flowComposer.addController(container);
sprite = new Sprite(); addChild(sprite);
sprite.x = 210; sprite.y = 130;
container = new ContainerController(sprite, 230, 170)
container.horizontalScrollPolicy = ScrollPolicy.OFF;
container.verticalScrollPolicy = ScrollPolicy.OFF;
flowComposer.addController(container);
sprite = new Sprite(); addChild(sprite);
sprite.x = 10; sprite.y = 310;
container = new ContainerController(sprite, 430, 300)
container.horizontalScrollPolicy = ScrollPolicy.OFF;
container.verticalScrollPolicy = ScrollPolicy.OFF;
flowComposer.addController(container);
editManager = new EditManager(new UndoManager());
textFlow.interactionManager = editManager;
textFlow.flowComposer.updateAllControllers();
setTimeout(demonstrateEdits, 2000);
}
private function demonstrateEdits():void {
try {
var pointer:* = textFlow.getChildAt(0); //textFlow>_div_
pointer = pointer.getChildAt(1); //textFlow>div>paragraph1, _paragraph2_
editManager.selectRange(pointer.getAbsoluteStart() + 1, 40);
editManager.applyLink("http://actionscriptbible.com");
textFlow.flowComposer.updateAllControllers();
} catch(error:Error) {
trace("Error editing: " + error.toString());
}
}
}
}