加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);
		}
	}        
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读