Flex

A collection of 4 posts
State 切换时组件的创建销毁策略
Flex

State 切换时组件的创建销毁策略

好久没有写Flex了,今天突然用到了State,隐约记得有两个属性可以控制State切换时组件的创建销毁策略,现记录如下,以防再次失忆。 itemCreationPolicy 属性指定组件的创建策略,该属性值有2个字符串值: * deferred(默认值)首次切换到某状态时,属于该状态的组件会被创建实例。 * immediate 组件在应用启动时创建,但如果组件不属于当前状态,其 creationComplete 事件不会发生,只有首次切换到该组件所属的状态,调用到渲染绘制时,才会发生该事件。 itemDestructionPolicy 组件的销毁策略,该属性值有2个字符串值: * never(默认值)组件一旦创建就不会被自动销毁 * auto 当离开该组件所属的状态时,组件将被自动销毁。
1 min read
DataGrid 导出 CSV
Flex

DataGrid 导出 CSV

DataGrid 使用第三方库 CSVLib 导出CSV,遇到如下两个问题: * ActionScript 默认的文本编码为 UTF-8,而 CSV 不支持这种编码,导致中文表头在 Excel 中显示为乱码,而用记事本打开正常。解决方法:CSV 导出时用 ByteArray 转码,代码如下: var byte:ByteArray = new ByteArray(); byte.writeMultiByte(result,"gb2312"); * 之前的导出实现是基于 DataGrid 的数据源的,与 DataGrid 所展示的内容并不是完全相同,尤其是当 DataGrid 中的某一列指定了 labelFunction 时,必须在保存之前执行 labelFunction 把该列的数据转为可视的表格 ,这种情况下,很难写出一个通用的功能。直到最近想起 DataGrid 的 GridColumn
1 min read
TextFlow 文本中插入图片或其他组件
Flex

TextFlow 文本中插入图片或其他组件

TextFlow 是 Flex 富文本框架 TextLayout Framework的核心类,使用它可以实现富文本及图文混排,甚至可以插入自定义的Flex组件,具体用法如下: * 插入图片 textFlow.interactionManager = new EditManager(); //bitmap为具体的图片,插入后生成一个InlineGraphicElement。 EditManager(textFlow.interactionManager).insertInlineGraphic(bitmap,bitmap.width,bitmap.height); textFlow.flowComposer.updateAllContainers(); * 插入自定义组件 var container:SpriteVisualElement = new SpriteVisualElement(); //component为组件的一个实例,最好是放在Group中。 container.addChild(component); var graphic:In
1 min read
基于 Text Layout Framework 的文本组件的滚动条问题
Flex

基于 Text Layout Framework 的文本组件的滚动条问题

RichEditable、TextArea 等基于 Text Layout Framework 的文本组件在使用 TextFlow 导入富文本时有如下问题:当有时由于有图片或大字体导入,导致文本流合成需要一定时间,此时如果设置滚动条位置到最下方,当文本流合成完毕,由于又增加了内容,导致滚动条的位置又上移了。 之前的做法是加一个延时,但此方法有矛盾之处:既不能把延时设得太大,因为这样导入文本时的体验不好,又不能设得太小,因为无法保证在延时的时间段内图片或字体加载完成。 偶然发现了一个纯 AS 写的滚动条,其中用了用缓动类 TweenLite 来实现滚动条的滑动效果,顿时想到可以尝试一下用来解决上文提到的滚动条问题,经过试验,效果显著,于是上面问题归结为一句代码,以 TextArea 为例: TweenLite.to(textArea.scroller.verticalScrollBar,1,{value:int.MAX_VALUE});
1 min read