zoukankan      html  css  js  c++  java
  • <转>AS3及Flex的百条常用知识(二)


    2009年12月21日 星期一 03:45 P.M.

    【自动大小调整和对齐】
    TextField.autoSize = TextFieldAutoSize.LEFT;
    可选之值:
    flash.text.TextFieldAutoSize.CENTER
    flash.text.TextFieldAutoSize.LEFT
    flash.text.TextFieldAutoSize.NONE
    flash.text.TextFieldAutoSize.RIGHT

    【指示文本字段是否自动换行】
    TextField.wordWrap = true; //自动换行

    【用程序手段滚动文字】
    水平方向以像素为单位,而垂直方向以行做单位:
    scrollV: 指出文字框可见区域的最顶行,可读写;
    bottomScrollV: 指出文字框内最底端可见行,只读;
    maxScrollV: scrollV的最大值,只读;
    numLines: 定义多行文本字段中的文本行数,只读;
    TextField.scrollV = field.maxScrollV; //滚动到最后一页

    【响应滚动事件】
    field.addEventListener(Event.SCROLL, onTextScroll);

    【样式化文字的方法】
    1. 使用HTML标签进行样式化;
    2. 使用TextFormat对象;
    3. 使用CSS.
    例如: HTML是用<font>标签,TextFormat对象是设定font属性,而CSS是使用font-family属性的.
    受支持的层叠样式表(CSS)属性和值,及其相应的ActionScript属性名称(小括号内):
    color(color),display(display),font-family(fontFamily),font-size(fontSize),font-style(fontStyle),font-weight(fontWeight),kerning(kerning),leading(leading),letter-spacing(letterSpacing),margin-left(marginLeft),margin-right(marginRight),text-align(textAlign),text-decoration(textDecoration),text-indent(textIndent)
    受支持的HTML实体: <(小于号: <), >(大于号: >), &(和: &), "(双引号: "), '(撇号,单引号: ')
    其中样式对象的两种写法:
    写法一:
    var sampleStyle:Object = new Object();
    sampleStyle.color = "#FFFFFF";
    sampleStyle.textAlign = "center";
    css.setStyle(".sample", sampleStyle);
    写法二:
    var sampleStyle:Object = {color: "#FFFFFF", textAlign: "center"};
    css.setStyle(".sample", sampleStyle);

    【对用户输入的文字进行样式化】
    使用defaultTextFormat属性,样式会施加至用户键入输入框的文字身上:
    var formatter:TextFormat = new TextFormat();
    formatter.color = 0x0000FF; //把文字变成蓝色
    field.defaultTextFormat = formatter;

    【对现有文字的一部分进行样式化】
    TextFormat.setTextFormat(format:TextFormat, beginIndex:int = -1, endIndex:int = -1):void

    【设定文字框的字体】
    例子:
    HTML: field.htmlText = "<font face='Arial'>Formatted text</font>";
    TextFormat: formatter.font = "Arial";
    CSS: P{ font-family: Arial; }
    也可以使用以逗号隔开的字体清单: formatter.font = "Arial, Verdana, Helvetica";
    注意:
    字体和字体群组不同.字体群组有三种: _sans,_serif以及_typewriter.
    _sans群组一般就是指Arial或Helvetica这种字体;
    _serif群组一般就是指Times或Times New Roman这种字体;
    _typewriter群组一般就是指Courier或Courier New这种字体.

    【嵌入字体】
    使用[Embed]后设标签.[Embed]后设标签应该出现在ActionScript文件中,处于类宣告之外.你可以内嵌TrueType字体或系统字体.内嵌TrueType字体时的语法:
    [Embed(source="pathToTtfFile", fontName="FontName", mimeType="application/x-font-truetype")]
    pathToTtfFile: ttf文件的路径,TrueType字体的路径可以是相对的,也可以是绝对的;
    FontName: 字体名称;
    内嵌系统字体的语法:
    [Embed(systemFont="Times New Roman", fontName="Times New Roman", mimeType="application/x-font-truetype")]
    fontName: 以相同名称作为实际系统字体名称.
    注 意: 在使用嵌入字体时,要把TextField的embedFonts属性设为true,这样TextField只能用内嵌字体了.如果你试着替 embedFonts设为true的TextField使用设备字体,什么都不会显示.如果embedFonts设为true,就无法指定以逗号相隔的字体清单.

    【建立可以旋转的文字】
    使用内嵌字体.当你旋转文字框时,设备字体就会消失.

    【显示Unicode文字】
    1. 从外部来源载入Unicode文字;
    2. 假如你的编辑器支持Unicode(如 Flex Builder),则可以直接在ActionScript程序中使用该字符;
    3. 使用Unicode转义字符,ActionScript里所有Unicode转义字符都以\u开头,后面再跟四位十六进制数字.
    注意: 如果你想取得Unicode字符,在Windows下使用: 开始>所有程序>附件>系统工具>字符映射表.

    【把Flash Player的焦点带给文字框】
    stage.focus = field;
    把焦点移除:
    stage.focus = null;
    注意: 当.swf文件首次载入至网页浏览器时,并没有焦点.因此,以程序的方式把焦点指定给Flash应用程序的一个元素前,必须先把焦点移至Flash Player.

    【以ActionScript选取文字】
    使用TextField.setSelection(beginIndex:int, endIndex:int):void
    为了可以正常选取文字,文字框必须具有焦点:
    stage.focus = field; //把焦点设给文字框
    field.text = "This is example text"; //设定文字
    field.setSelection(0, 4); //把"This"这个单词以高亮显示
    使用只读的selectionBeginIndex和selectionEndIndex属性访问所选取的字符范围的索引.

    【在文字内设定安插点(游标位置)并访问游标位置的索引值】
    可以使用TextField.setSelection()把起始和结尾的索引参数都设成相同值,在文字内设定游标位置(假设具有焦点):
    field.setSelection(0, 0); //在第一个字符前摆放安插点
    trace(field.caretIndex); //输出游标位置的索引值

    【当文本字段受到选取或取消选取时给予响应】
    获得焦点时: FocusEvent.FOCUS_IN
    失去焦点时: FocusEvent.FOCUS_OUT
    通过键盘(Tab键)把焦点移除时: FocusEvent.KEY_FOCUS_CHANGE
    通过鼠标把焦点移除时: FocusEvent.MOUSE_FOCUS_CHANGE
    FocusEvent 类有一个relatedObject属性.就FOCUS_IN事件而言,relatedObject属性是刚才拥有焦点的对象的引用地址;对于 FOCUS_OUT,KEY_FOCUS_CHANGE以及MOUSE_FOCUS_CHANGE事件,relatedObject属性是刚接收到焦点的对象的引用地址.
    FOCUS_IN和FOCUS_OUT事件都是在焦点改变后发生的,所以两者都是不可取消的事件.对于KEY_FOCUS_CHANGE和MOUSE_FOCUS_CHANGE事件,可以使用FocusEvent.preventDefault()方法取消默认行为:
    field.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, onKeyFocus);
    private function onKeyFocus(event:FocusEvent):void {
    if(field.text == "") {
    event.preventDefault(); //当field没有任何文字前,不允许使用Tab键把焦点移除
    }
    //event.relatedObject就是刚才拥有焦点的对象的引用地址,即下一个获得焦点的对象的引用地址
    }

  • 相关阅读:
    codeforces C. Cows and Sequence 解题报告
    codeforces A. Point on Spiral 解题报告
    codeforces C. New Year Ratings Change 解题报告
    codeforces A. Fox and Box Accumulation 解题报告
    codeforces B. Multitasking 解题报告
    git命令使用
    shell简单使用
    知识束缚
    php 调用系统命令
    数据传输方式(前端与后台 ,后台与后台)
  • 原文地址:https://www.cnblogs.com/nianshi/p/1739426.html
Copyright © 2011-2022 走看看