TLF(TextFlow) 总结-FLEX
使用方法:var _sprite:Sprite = new Sprite(); var _txFormat:TextLayoutFormat = new TextLayoutFormat(); // 默认样式 var html:String = ""; var _tf:TextFlow = TextConverter.importToFlow(html, TextConverter.TEXT_FIELD_HTML_FORMAT); //导入html,生成textflow var _em:EditManager = new EditManager(new UndoManager()); //编辑选择、样式设置 _tf.interactionManager = _em; _em.focusedSelectionFormat = new SelectionFormat(0xa8c6ee, 1.0, BlendMode.NORMAL, 0xa8c6ee, 1.0, BlendMode.NORMAL, 0); _em.inactiveSelectionFormat = new SelectionFormat(0xa8c6ee, 1.0, BlendMode.NORMAL, 0xa8c6ee, 1.0, BlendMode.NORMAL, 0); _em.unfocusedSelectionFormat = new SelectionFormat(0xe8e8e8, 1.0, BlendMode.NORMAL, 0xe8e8e8, 1.0, BlendMode.NORMAL, 0); addChild(_sprite);tf.format = _txFormat; var _container:ContainerController = new ContainerController(_sprite,width, height); //显示容器控制器 _tf.flowComposer.addController(_container); _tf.addEventListener(SelectionEvent.SELECTION_CHANGE, selectionChangeListener, false, 0, true); _tf.addEventListener(StatusChangeEvent.INLINE_GRAPHIC_STATUS_CHANGE, graphicStatusChangeEvent, false, 0, true); _tf.addEventListener(CompositionCompleteEvent.COMPOSITION_COMPLETE, compositionCompleteHandler, false, 0, true); _tf.addEventListener(FlowOperationEvent.FLOW_OPERATION_COMPLETE, change);
1、 设置textflow失去焦点时的选中状态var selectionManager:ISelectionManager = textFlow.interactionManager;//当选择部分不在活动窗口中时,用于绘制选择的 SelectionFormat 对象。 selectionManager.inactiveSelectionFormat = new SelectionFormat(0xa8c6ee, 1.0, BlendMode.NORMAL, 0xa8c6ee, 1.0, BlendMode.NORMAL, 0);
//当选择部分不在焦点容器内但是位于活动窗口中时,用于绘制选择的 SelectionFormat 对象。selectionManager.unfocusedSelectionFormat = new SelectionFormat(0xe8e8e8, 1.0, BlendMode.NORMAL, 0xe8e8e8, 1.0, BlendMode.NORMAL, 0);
2、通过TextConverter.importToFlow(html, TextConverter.TEXT_FIELD_HTML_FORMAT) 得到的textflow,不能改变color这样的属性,如果要改变这些属性,只能通过导入纯文本,然后设置样式。
3、让光标定位到文本最后textflow.interactionManager.selectRange(textField.tf.getText().length,textField.tf.getText().length);textflow.interactionManager.setFocus();
4、若显示区域小于文本总长度,通过滚动的方式,让显示区域显示对应的文字。_container.verticalScrollPosition 属性改变垂直滚动位置,
5、TextLayoutFormat lineHeight属性:表示行高合法值为 -720 到 720 范围内的数字。合法值为 -1000% 到 1000% 范围内的百分比数字。合法值包括 FormatValue.INHERIT。默认值未定义,指示未设置。如果在层叠期间未定义,则此属性将从一个祖代继承值。如果没有祖代设置了此属性,则其值为 120%。
6、TextFlow 深拷贝
var copiedTextFlow:TextFlow = textFlow.deepCopy() as TextFlow;
var someOtherTextFlow:TextFlow = new TextFlow();
someOtherTextFlow.replaceChildren(0, someOtherTextFlow.numChildren);
while (copiedTextFlow.numChildren){
// in order builds this is a little more complicated (psuedo code here you will have to debug it)
// var child = copiedTextFlow.getChildAtIndex(0);
// copiedTextFlow.removeChild(child);
// someOtherTextFlow.addChild(child)
someOtherTextFlow.addChild(copiedTextFlow.getChildAtIndex(0));
}
7、得到textline的方式
var flow:TextFlow = tArea.textFlow; var composer:StandardFlowComposer = (flow.flowComposer as StandardFlowComposer); var tfline:TextFlowLine = composer.getLineAt(composer.numLines-1); var line:TextLine = tfline.getTextLine();
var factory:StringTextLineFactory = new StringTextLineFactory(); factory.compositionBounds = rect; factory.createTextLines( useTextLines ); function useTextLines( line:DisplayObject ):void { }
var factory:TextFlowTextLineFactory = new TextFlowTextLineFactory(); factory.compositionBounds = new Rectangle(0,0,w,h); factory.createTextLines(callback,textFlow); function callback(tl:TextLine):void { } 8、通过导入htmltext生成textflow的方式,设置TextLayoutFormat属性无效。因为直接改变这些属性也是设置html标签,不过是套在最外层,只有通过选中某部分,然后通过EditManager来改变才有效。var pa:TextLayoutFormat = new TextLayoutFormat();pa.color = 0x0000ff;_em.selectAll();_em.applyLeafFormat( pa, _em.getSelectionState() );
9、如何在缩小放大时自适应行高?
10、如何复制图片?
还有一些问题没弄懂的,,一定得仔细看看源码才行呀!!!
转载于:https://www.cnblogs.com/blogonfly/articles/3567397.html
TLF(TextFlow) 总结-FLEX相关推荐
- Maven下Flex国际化配置
之前写了flashbulid.initellij下的flex国际化配置,它们都是在本地打包发布的,那么我们的工程用maven管理了,需要自动发布.这时候如何修改flex的pom文件,来让它build的 ...
- Flex移动皮肤开发(一)
范例文件 mobile-skinning-part1.zip Flex 4.5提供的移动增强的皮肤特性,支持触摸交互.性能优良,并且考虑到了内存占用问题.尽管目前市场上有不少性能优异的设备,但典型的S ...
- Flex App的Size和Link报告
Flex App的Size和Link报告 0 Flex编译器参数: -size-report 和 -link-report 编译参数 Flex编译器提供了一系列的编译器参数帮助我们定制应用编译过程.F ...
- Flex移动皮肤-第一部分:增强的皮肤功能基础
Flex 4.5提供的移动增强的皮肤特性,支持触摸交互.性能优良,并且考虑到了内存占用问题.尽管目前市场上有不少性能优异的设备,但典型的Spark皮肤(包括Flex 4引入的默认皮肤)却没有能够在移动 ...
- flash/flex基础发展区别等
原文地址:https://blog.csdn.net/xygg0801/article/details/53323136 很好的一篇文章 博主总结了很多资料 本文和大家重点讨论一下Flex和Flash ...
- Flex和Flash的区别和联系
本文和大家重点讨论一下Flex和Flash的区别和联系,Flex也继承了Flash在表示层上先天性的美感.除了视觉上的舒适感外,还天生具备方便的矢量图形.动画和媒体处理接口.虽然Flex和Flash有 ...
- Flash, Flex, Air, Flashplayer之间的相互关系是什么
Flash, Flex, Air, Flashplayer之间的相互关系是什么? 著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:曾嵘 链接:http://www.zhi ...
- Flash, Flex, Air, Flashplayer之间的相互关系是什么?
著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:曾嵘 链接:http://www.zhihu.com/question/20001256/answer/15565376 ...
- 【转】Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系
标签: Actionscript AS3 MXML Flex Flex Builder Flash Builder Flash AIR Flash Player ActionScript Acti ...
- ActionScript,Flash,Flash/Flex Builder,FlashPlayer,AIR,swf,swc,swz之间的区别
原文链接:http://zengrong.net/post/1295.htm ActionScript ActionScript通常简称为AS,它是Flash平台的语言.AS编写的程序,最终可以编译成 ...
最新文章
- java线程暂停与恢复suspend和resume
- 100元左右的鼠标推荐
- 【转】jsp+servlet和SSM分别是如何实现文件上传(示例)
- mysql tb_Mysql数据库分库和分表方式
- vue.js ajax怎么用,vue.js中ajax的使用
- Premiere Pro CC2017软件安装资料及教程
- AspUpload实时上传进度的AJAX方法
- 隐藏隧道通信:lcx 端口转发
- 浅谈功能测试-->自动化测试
- 飘窗利用如何改造 6个实用设计包你满意
- python寻找完全平方数_279 完全平方数(bfs)
- 【复现】CNVD-2020-10487-Tomcat-Ajp-lfi
- ResNet论文翻译——中文版
- 微擎跳过云平台_2018年10月微擎安装之阿里云懒人教程篇
- Python While循环与break语句_加工零件
- C#练习题答案: 图片#1 - 重建巴别塔【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
- HTML的基础入门,快来看看吧~
- 下列HTML标签是段落标签的是,HTML段落标签
- java集成华为推送
- 训练softmax分类器实例_一个值得深思的问题?为什么验证集的loss会小于训练集的loss...
热门文章
- 数据库系统原理与应用教程(031)—— MySQL 的数据完整性(四):定义外键(FOREIGN KEY)
- Linux-unbuntu修改apt源
- el表达式中三元表达式
- Godaddy域名注册详细图文教程(转)
- 成功解决http error 503.the service is unavailable错误
- Xenu Link Sleuth
- 想要成为大牛应该做到以下几点
- 非转基因保护品种覆盖南北 北方旱作国稻种芯-517功能苦瓜稻
- GC overhead limit exceeded 的解决方案与详情分析
- 为什么苹果日历不能设置日程_苹果自带日历hold每日待办日程提醒不再轻易miss日程...