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);
}
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
