`
windmark
  • 浏览: 32170 次
社区版块
存档分类
最新评论

AS3研究TextField心得

    博客分类:
  • Flex
 
阅读更多

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

分享到:
评论

相关推荐

    AS3.0TextField.txt

    ### AS3.0中的TextField元素详解 在Adobe Flash平台中,`TextField` 是一个非常重要的组件,用于显示和编辑文本。对于任何希望在Flash中创建交互式文本输入或输出的应用程序来说,理解如何使用 `TextField` 都是至...

    [转][AS3] flash.text.TextField應用攻略

    【标题】:“[转][AS3] flash.text.TextField应用攻略” 这篇博客文章主要探讨的是在ActionScript 3(AS3)中如何有效地使用`flash.text.TextField`类进行文本处理和显示。`flash.text.TextField`是AS3中一个重要的...

    Flash AS3 中文帮助文档

    《Flash AS3 中文帮助文档》是针对Adobe Flash Professional CS3中的ActionScript 3.0编程语言提供的中文版API参考手册。ActionScript 3.0是Flash平台上用于创建交互式内容、动画和富互联网应用程序(RIA)的主要...

    基于TextField的图文混编的组件

    基于TextField的图文混编组件是一种解决方案,它利用了Adobe Flash(ActionScript 3,AS3)中的TextField类来实现这一功能。TextField在Flash中是一个基础的文本显示和编辑控件,它可以处理简单的文本输入,但通过...

    as3随机滚动文本

    AS3随机滚动文本是一种在ActionScript 3(AS3)编程环境下实现的动态文本显示技术。这个技术主要用于创建视觉上吸引人的...通过研究这些文件,开发者可以学习如何在实际项目中应用这些技术,提升自己的AS3编程技能。

    ext-3-TextField-sample.rar_ext_ext TextField_ext textfield inp

    ExtJS 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。在提供的压缩包中,"ext-3-TextField-sample.rar" 涉及...通过研究提供的示例和文档,你可以更深入地了解如何在ExtJS中有效地利用TextField组件。

    AS3做的文本框只有下划线

    总觉得文本框有边框上下左右都显示特难看,现在做了个自动调整大小的只有下边边框的文本框~

    as3滚动文字

    AS3中的`TextField`类是处理文本的核心类。通过创建`TextField`实例,可以添加静态文本或者动态文本到舞台上。对于滚动文字,我们需要使用动态文本,因为它允许我们在运行时改变文本内容。 3. **TextFormat类**: ...

    AS3聊天表情即图文混排

    在本文中,我们将深入探讨AS3(ActionScript 3)中的图文混排技术,特别是如何在聊天应用中实现表情插入。ActionScript 3是Adobe...如果你正在使用AS3开发类似项目,研究并借鉴AS3聊天表情函数.txt中的代码将大有裨益。

    as3迷宫游戏

    AS3的MovieClip和TextField类可以用来创建动态的UI元素。 在“迷宫游戏3.26”这个版本中,可能包含了游戏的源代码、资源文件(如图片、音频)以及可能的文档说明。通过分析这些文件,我们可以进一步了解这个游戏的...

    textField的一个简单例子

    [UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { // 计算键盘高度 let keyboardHeight = keyboardSize.height // 调整视图或scroll view的contentInset,使textField保持可见 view....

    AS3扫雷游戏

    AS3提供了丰富的图形和文本组件,如TextField用于显示分数和时间,Button用于设置难度等级。 12. **性能优化**: 对于较大规模的雷区,优化代码以提高性能是必要的,比如减少不必要的计算和更新。 通过学习和分析AS...

    FLASH 标签云 AS3

    在IT行业中,Flash是一款曾经广泛使用的交互式内容创建工具,特别是在网页设计和动画制作领域。在给定的“FLASH 标签云 AS3”主题中...通过研究这些文件,你可以逐步了解和掌握上述知识点,进一步提升你的AS3编程技能。

    Java中TextField类.pdf

    Java中的`TextField`类是Swing库中的一个基础组件,用于创建用户可以在其上输入文本的单行文本字段。在GUI编程中,`TextField`是一个非常常见的元素,它允许用户输入和编辑一行文本。以下是对`TextField`类的详细...

    ExtJs5 去掉textfield边框

    在ExtJs5中,开发人员有时需要自定义UI以满足特定的设计需求,比如去掉`textfield`组件的边框。在给定的描述中,我们看到开发者遇到了一个问题:默认情况下,ExtJs5的`textfield`组件有明显的边框,但通过添加特定的...

    AS3脚本入门电子教程

    《AS3脚本入门电子教程》是一份专为ActionScript 3.0新手设计的详尽教程,旨在帮助初学者快速掌握AS3编程基础。AS3是Adobe Flash平台的重要脚本语言,广泛应用于动画制作、游戏开发、网页交互等多个领域。这份教程以...

    AS3.0 TLFTextField 组件库

    * TLFTextField 对象与 TextField 对象类似,但 TLFTextField 对象可以利用 flashx 包中包含的 TLF 类的属性和方法。TLF 提供了大量格式选项和功能。 * @author */ public class STLFTextField extends ...

    as3简单的聊天窗体组件

    5. **文本处理**:TextField类是AS3中处理文本的主要工具,用于创建聊天窗口中的输入框和消息显示区域。可以设置其多行、可滚动等属性来适应聊天需求。 6. **时间轴控制**:由于提到了`library.swf`,这可能是Flash...

    as3 tooltip的例子

    在ActionScript 3 (AS3)中,Tooltip是用于向用户提供关于舞台上某个对象附加信息的一种交互元素。在标题“as3 tooltip的例子”中,我们关注的是如何在Flash环境中使用AS3来实现这样的功能。让我们深入探讨一下这个...

    Flash as3 打字效果

    在Flash AS3中实现打字效果是动画制作中常见的技巧,它可以模拟文本逐字出现的动态过程,增强视觉吸引力和互动性。以下是对这个主题的详细讲解: 首先,`Flash AS3`是Adobe Flash Professional软件中的编程语言层,...

Global site tag (gtag.js) - Google Analytics