flash 图文混排 灰常好的东东哦
发布时间:2020-12-15 07:07:18 所属栏目:百科 来源:网络整理
导读:来自:?http://blog.csdn.net/hu36978/article/details/5488829 直接拷贝到flash build 4 正式版里进行测试! ? /**核心部分//为tf初始化各类属性tf = new TextFlow();um = new UndoManager();em = new EditManager(um);tf.interactionManager = em;//格式va
来自:?http://blog.csdn.net/hu36978/article/details/5488829 直接拷贝到flash build 4 正式版里进行测试! ?
/* * 核心部分 //为tf初始化各类属性 tf = new TextFlow(); um = new UndoManager(); em = new EditManager(um); tf.interactionManager = em; //格式 var fmt:TextLayoutFormat = new TextLayoutFormat(); fmt.fontFamily = "_sans"; fmt.fontSize = 12; fmt.paddingTop = fmt.paddingLeft = fmt.paddingBottom = fmt.paddingRight = 10; tf.hostFormat = fmt; //define elements to contain text 定义包含的节点属性 d = new DivElement(); p = new ParagraphElement(); s = new SpanElement();//平常的文字--- 用于定义文字 s.text ="Press the green button to start. Sometimes the loaded images will flash large (unscaled) when they come in. "; //add these elements to the TextFlow 加入根节点textFlow中 p.addChild(s);//增加到 pragraph里 与html标签类似 d.addChild(p);// div区域 与html标签类似 tf.addChild(d); //最终的根节点为 TextFlow var leaf_el:FlowLeafElement = tf.getLastLeaf();// if(!leaf_el) return; var para_el:ParagraphElement = leaf_el.getParagraph();//得到paragraph区域//该区域用来放外部图像 var link:String = "http://www.theyrule.net/test/ExternalMovie.swf?"+ String((Math.random()*1000)/100); //外部要混排的图像资源 var imgElem:InlineGraphicElement = new InlineGraphicElement();//用于加载外部图像 imgElem.height = 10; imgElem.width = 10; //******************************** 图文混排的核心部分*************************************** imgElem.source = link; para_el.addChild(imgElem);//插入paragraph的段落中 tf.flowComposer.updateAllControllers();//刷新TextFlow */ package { import flash.display.*; import flash.events.*; import flash.text.TextFormat; import flashx.textLayout.container.ContainerController; import flashx.textLayout.edit.EditManager; import flashx.textLayout.elements.DivElement; import flashx.textLayout.elements.FlowLeafElement; import flashx.textLayout.elements.InlineGraphicElement; import flashx.textLayout.elements.ParagraphElement; import flashx.textLayout.elements.SpanElement; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.formats.TextLayoutFormat; import flashx.undo.UndoManager; [SWF(backgroundColor="#FFFFFF",width="400",height="400",frameRate="60")] public class TWHP extends Sprite { private var tf:TextFlow; private var em:EditManager; private var um:flashx.undo.UndoManager private var _init_fmt:TextLayoutFormat; private var _btn:Sprite; private var d:DivElement; private var s:SpanElement; private var p:ParagraphElement; private var count:Number = 0; public function TWHP() { stage.scaleMode = StageScaleMode.NO_SCALE; var mar:Number = 10; var ww:Number = 300; var hh:Number = 300; //define TextFlow and manager objects tf = new TextFlow(); um = new UndoManager(); em = new EditManager(um); tf.interactionManager = em; var fmt:TextLayoutFormat = new TextLayoutFormat(); fmt.fontFamily = "_sans"; fmt.fontSize = 12; fmt.paddingTop = fmt.paddingLeft = fmt.paddingBottom = fmt.paddingRight = 10; tf.hostFormat = fmt; //define elements to contain text d = new DivElement(); p = new ParagraphElement(); s = new SpanElement();//平常的文字---用于定义文字 s.text ="Press the green button to start. Sometimes the loaded images will flash large (unscaled) when they come in. "; //add these elements to the TextFlow p.addChild(s);//增加到 pragraph里 与html标签类似 d.addChild(p);// div区域 与html标签类似 tf.addChild(d); //最终的根节点为 TextFlow var bg:Sprite = new Sprite(); bg.graphics.lineStyle(1,0xCCCCCC); bg.graphics.drawRect(mar,mar,ww,hh); addChild(bg); var cont:Sprite = new Sprite(); cont.x = mar; cont.y = mar; addChild(cont); //compose TextFlow to display tf.flowComposer.addController(new ContainerController(cont,300,300)); tf.flowComposer.updateAllControllers(); //make a button to add Inline Graphic elements _btn = new Sprite(); _btn.graphics.clear(); _btn.graphics.beginFill(0x00cc00,1); _btn.graphics.drawRect(0,120,30); addChild(_btn); _btn.x = mar + ww - 120; _btn.y = mar + mar + hh; _btn.buttonMode = true; _btn.addEventListener(MouseEvent.CLICK,btnClicked); } /** * finds the last position in the TF and adds an InlineGraphic **/ // 图文混排的核心部分 protected function addIGE():void { var leaf_el:FlowLeafElement = tf.getLastLeaf(); if(!leaf_el) return; var para_el:ParagraphElement = leaf_el.getParagraph(); var link:String = "http://www.theyrule.net/test/ExternalMovie.swf?"+ String((Math.random()*1000)/100); link = "http://avatar.csdn.net/2/B/9/1_hu36978.jpg"; var imgElem:InlineGraphicElement = new InlineGraphicElement();//用于加载外部图像 imgElem.height = 10; imgElem.width = 10; //******************************** 图文混排的核心部分*************************************** imgElem.source = link; para_el.addChild(imgElem); tf.flowComposer.updateAllControllers(); } /** * Toggles the addition of InlineGraphicElements on EnterFrame **/ protected function btnClicked(e:MouseEvent):void { _btn.graphics.clear(); _btn.graphics.beginFill(0x00cc00,1); removeEventListener(Event.ENTER_FRAME,onEnterFrame); if(count == 0){ addEventListener(Event.ENTER_FRAME,onEnterFrame); _btn.graphics.beginFill(0xcc0000,1); } count = 0; _btn.graphics.drawRect(0,30); } protected function onEnterFrame(e:Event):void { addIGE(); count++; if(count > 200) removeEventListener(Event.ENTER_FRAME,onEnterFrame); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |