- 浏览: 32433 次
最新评论
AS3研究TextField心得
这两天自己做了textinput和textarea组件,众所周知,这两种组件的内部其实都是一个原始的textfield。这里把自己的一些研究心得记录如下
首先要明白几种长度单位:
1、磅:pt(point),这是一种绝对长度单位,为1/72英寸,等于0.3527mm
2、像素:px,这是一种相对长度单位,譬如,WONDOWS的用户所使用的分辨率一般是96像素/英寸。而MAC的用户所使用的分辨率一般是72像素/英寸。
以下讨论文本框TextField相关:
1、字号
也就是fontsize,flash中单位是磅(office中也时),可以使用textHeight和textWidth来获取文本的像素高度和宽度,由于各种字体自身的差别,不是相同字号的字体所需要的文本框高度都一致。譬如Arial字体就比宋体所需要的文本框高度高。
2、文本框高度
对于单行文本框,给定一个高度和一种字体,如何确定所需要的最大的字号呢?
有一个简便方法就是,新建一个autosize的文本框,设置其字号并判断其高度来得到最大字号。
function getFontSizeByTxtHeight(h:Number, font:String):Number { //给定单行文本框高度h,字体font获取最大字号 var testtxt:TextField = new TextField(); testtxt.type = TextFieldType.INPUT; testtxt.autoSize = TextFieldAutoSize.LEFT; for (var size:Number=Math.round(h);size>0; size-=0.5) { var tf:TextFormat = new TextFormat(); tf.leading = 0; tf.font = font; tf.size = size; testtxt.defaultTextFormat = tf; testtxt.text = "test单行文本"; //trace(size, testtxt.height); if (testtxt.height <= h) { break; } } return size; }
3、leading行与行之间的垂直距离
在flash 舞台中新建一个文本框,leading的默认值为2,单位也是磅
而new出来的文本框,leading默认值为0
4、锯齿消除方法
在舞台上可以看到有五种方式:
使用设备字体、位图文本、动画消除锯齿、可读性消除锯齿、自定义消除锯齿。
第一种会查找客户端中该对应字体并进行显示,如果客户端不存在相应的字体,则显示会出现预料外的情况。
后四种方式需要嵌入字体。
而TextField类对应的属性中有
embedFonts:是否使用嵌入字体,false时相当于使用设备字体
antiAliasType:抗锯齿类型flash.text.AntiAliasType.NORMAL、flash.text.AntiAliasType.ADVANCED
gridFitType:网格固定类型
thickness、sharpness对应自定义消除锯齿的粗细、清晰度
5、滚动相关
textfield有scrollV、scrollH、maxScrollV、maxScrollH、bottomScrollV属性来指示相关滚动。
V 代表垂直方向,是以行为单位的,如果文本框内显示得下指定行数,则maxScrollV为1,一旦显示不小,maxScrollV就不为1了,所以可以侦听文字的change事件判断maxScrollV来判断是否需要滚动条。scrollV到bottomScrollV之间是当前您能看到的文本框中中的行号。
H代表水平方向,以像素为单位,从0开始,不同于V,同理检测maxScrollH是否为0。
6、事件相关
textfield有如下事件比较常用:
focusin、out:获得、失去焦点,用于判断当前用户是否focus in该文本框,譬如一旦focusin加个高亮边框阿,换个背景什么的
textinput、change:前者在文本输入到文本框之前调用,后者在文本框中的文本发生改变时调用。
scroll:不管你用什么方式导致scrollV、scrollH发生改变,譬如输入文本时的自动滚动阿,滚轮滚动文本阿(即便你手工设置scroll)都会导致scroll事件的发生
来源于:http://hi.baidu.com/winnyang/blog/item/b1cfddb5e693efc637d3ca13.html
发表评论
-
async-threading 让flex支持多线程(转)
2014-07-17 16:57 775开源项目async-threading能使as3支持多线程, ... -
Flex 多图片压缩上传
2014-07-10 15:04 850转自:http://my.oschina.net/eats ... -
Flex AMF Upload Demo
2013-05-05 20:44 923java端:写一个名为ZhuaTuSerlvet的Serl ... -
FXG Test
2012-12-17 23:52 681<?xml version="1.0&q ... -
My Flex Skin
2012-11-23 08:58 87My Flex Skin -
Flex中的DataGrid的内容处理(总结)
2012-11-08 10:59 7951.介绍一下DataGrid中数据的增加/删除/获取。添加/删 ... -
flex DataGrid 表头分组
2012-11-05 08:46 972<mx:AdvancedDataGrid id ... -
AS3分享:FLEX开发者必备的十多个工具
2012-11-01 00:07 645http://as3.aa-a.net/index.php/a ... -
Flex efflex 开源库
2012-10-31 00:00 635http://www.efflex.org/FlexEffec ... -
Flex 字体 消除锯齿相关
2012-10-30 23:34 15341. Adobe 官方: 控制 ... -
Flex实用工具
2012-10-26 08:43 57Flex实用工具 -
Flex使用module加载swf,部分组件样式丢失
2012-10-24 15:44 770flex使用module加载swf,部分组件样式丢失(da ... -
My calendar
2012-10-22 14:21 606My calendar design -
使用ObjectUtil来遍历flex as Object对象的所有属性
2012-10-12 10:48 731遍历或者复制一个as 对象所有的属性,可以模仿java使用反射 ... -
AS3 Copy 对象
2012-10-12 10:46 729第一种:public static function clon ... -
AS3 深复制
2012-10-12 10:44 75713.11 深度拷贝一个ArrayCo ... -
flex mvc 架构图
2012-09-25 15:12 694flex mvc 架构图 -
Parsley API
2012-08-16 08:40 780Parsley API -
如何从数组中随机取出多个不重复的项
2012-08-14 17:24 9591.问题如何随机取数组 ... -
随机取数组里的值
2012-08-14 17:11 871怎样随机读取数组中的一个值(两种方法) 方法一: var ...
相关推荐
### AS3.0中的TextField元素详解 在Adobe Flash平台中,`TextField` 是一个非常重要的组件,用于显示和编辑文本。对于任何希望在Flash中创建交互式文本输入或输出的应用程序来说,理解如何使用 `TextField` 都是至...
【标题】:“[转][AS3] flash.text.TextField应用攻略” 这篇博客文章主要探讨的是在ActionScript 3(AS3)中如何有效地使用`flash.text.TextField`类进行文本处理和显示。`flash.text.TextField`是AS3中一个重要的...
《Flash AS3 中文帮助文档》是针对Adobe Flash Professional CS3中的ActionScript 3.0编程语言提供的中文版API参考手册。ActionScript 3.0是Flash平台上用于创建交互式内容、动画和富互联网应用程序(RIA)的主要...
基于TextField的图文混编组件是一种解决方案,它利用了Adobe Flash(ActionScript 3,AS3)中的TextField类来实现这一功能。TextField在Flash中是一个基础的文本显示和编辑控件,它可以处理简单的文本输入,但通过...
AS3随机滚动文本是一种在ActionScript 3(AS3)编程环境下实现的动态文本显示技术。这个技术主要用于创建视觉上吸引人的...通过研究这些文件,开发者可以学习如何在实际项目中应用这些技术,提升自己的AS3编程技能。
ExtJS 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。在提供的压缩包中,"ext-3-TextField-sample.rar" 涉及...通过研究提供的示例和文档,你可以更深入地了解如何在ExtJS中有效地利用TextField组件。
总觉得文本框有边框上下左右都显示特难看,现在做了个自动调整大小的只有下边边框的文本框~
AS3中的`TextField`类是处理文本的核心类。通过创建`TextField`实例,可以添加静态文本或者动态文本到舞台上。对于滚动文字,我们需要使用动态文本,因为它允许我们在运行时改变文本内容。 3. **TextFormat类**: ...
在本文中,我们将深入探讨AS3(ActionScript 3)中的图文混排技术,特别是如何在聊天应用中实现表情插入。ActionScript 3是Adobe...如果你正在使用AS3开发类似项目,研究并借鉴AS3聊天表情函数.txt中的代码将大有裨益。
AS3的MovieClip和TextField类可以用来创建动态的UI元素。 在“迷宫游戏3.26”这个版本中,可能包含了游戏的源代码、资源文件(如图片、音频)以及可能的文档说明。通过分析这些文件,我们可以进一步了解这个游戏的...
[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { // 计算键盘高度 let keyboardHeight = keyboardSize.height // 调整视图或scroll view的contentInset,使textField保持可见 view....
AS3提供了丰富的图形和文本组件,如TextField用于显示分数和时间,Button用于设置难度等级。 12. **性能优化**: 对于较大规模的雷区,优化代码以提高性能是必要的,比如减少不必要的计算和更新。 通过学习和分析AS...
在IT行业中,Flash是一款曾经广泛使用的交互式内容创建工具,特别是在网页设计和动画制作领域。在给定的“FLASH 标签云 AS3”主题中...通过研究这些文件,你可以逐步了解和掌握上述知识点,进一步提升你的AS3编程技能。
Java中的`TextField`类是Swing库中的一个基础组件,用于创建用户可以在其上输入文本的单行文本字段。在GUI编程中,`TextField`是一个非常常见的元素,它允许用户输入和编辑一行文本。以下是对`TextField`类的详细...
在ExtJs5中,开发人员有时需要自定义UI以满足特定的设计需求,比如去掉`textfield`组件的边框。在给定的描述中,我们看到开发者遇到了一个问题:默认情况下,ExtJs5的`textfield`组件有明显的边框,但通过添加特定的...
《AS3脚本入门电子教程》是一份专为ActionScript 3.0新手设计的详尽教程,旨在帮助初学者快速掌握AS3编程基础。AS3是Adobe Flash平台的重要脚本语言,广泛应用于动画制作、游戏开发、网页交互等多个领域。这份教程以...
* TLFTextField 对象与 TextField 对象类似,但 TLFTextField 对象可以利用 flashx 包中包含的 TLF 类的属性和方法。TLF 提供了大量格式选项和功能。 * @author */ public class STLFTextField extends ...
5. **文本处理**:TextField类是AS3中处理文本的主要工具,用于创建聊天窗口中的输入框和消息显示区域。可以设置其多行、可滚动等属性来适应聊天需求。 6. **时间轴控制**:由于提到了`library.swf`,这可能是Flash...
在ActionScript 3 (AS3)中,Tooltip是用于向用户提供关于舞台上某个对象附加信息的一种交互元素。在标题“as3 tooltip的例子”中,我们关注的是如何在Flash环境中使用AS3来实现这样的功能。让我们深入探讨一下这个...
在Flash AS3中实现打字效果是动画制作中常见的技巧,它可以模拟文本逐字出现的动态过程,增强视觉吸引力和互动性。以下是对这个主题的详细讲解: 首先,`Flash AS3`是Adobe Flash Professional软件中的编程语言层,...