·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

AS3实用函数、AS3常用算法大合集(6)

时间:2011-08-26 14:42blueidea.com
【设定文字框的字体】 例子: HTML: field.htmlText = font face=ArialFormatted text/font; TextFormat: formatter.font = Arial; CSS: P{ font-family: Arial; } 也可以使用以逗号隔开的字体清单: formatter.font

【设定文字框的字体】
例子: 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就是刚才拥有焦点的对象的引用地址,即下一个获得焦点的对象的引用地址 }

【响应用户的输入行为】
field.addEventListener(TextEvent.TEXT_INPUT, onTextInput); private function onTextInput(event:TextEvent):void { if(event.text == “a” && field.length == 0) { event.preventDefault(); //TEXT_INPUT是可以取消的事件.TextEvent有一个text属性,内含用户所输入的的字符.此例子确保用户输入的第一个字母不是”a” } }

【把超链接加入文字】
打开网页: 例子1: var css:StyleSheet = new StyleSheet(); css.parseCSS(“a{color:#0000FF;} a:hover{text-decoration:underline;}”); field.styleSheet = css; field.htmlText = “<a href=’http://as3.aa-a.net/’ target=’_blank’>Link text</a>”; 例子2: field.text = “Link text”; var formatter:TextFormat = new TextFormat(); formatter.url = http://as3.aa-a.net/; formatter.target = “_blank”; field.setTextFormat(formatter); 打开Email: field.text = “Link text”; var formatter:TextFormat = new TextFormat(); formatter.url = mailto:mail@aa-a.net; field.setTextFormat(formatter); 使用event协议,打开ActionScript方法: field.htmlText = “<a href=’event:http://as3.aa-a.net/’>http://as3.aa-a.net</a>”; field.addEventListener(TextEvent.LINK, onClickHyperlink); private function onClickHyperlink(event:TextEvent):void { trace(event.text); //输出: http://as3.aa-a.net/}

【精确获取某字符的索引值】
在 x 和 y 参数指定的位置返回从零开始的字符索引值 TextField.getCharIndexAtPoint(x:Number, y:Number):int 例子: field.getCharIndexAtPoint(mouseX, mouseY); //返回鼠标位置上的该字符的索引值

【精确获取某字符的边框区域】
TextField.getCharBoundaries(charIndex:int):Rectangle 通过读取Rectangle的x,y,width以及height等属性来确定该字符的边框区域范围.

【精确获取某行的索引值】
在 x 和 y 参数指定的位置返回从零开始的行索引值 TextField.getLineIndexAtPoint(x:Number, y:Number):int field.getLineIndexAtPoint(mouseX, mouseY); //返回鼠标位置上的该行的索引值

【获取指定索引值处的字符所在行的行索引值】
TextField.getLineIndexOfChar(charIndex:int):int

【获取指定行的字符数】
TextField.getLineLength(lineIndex:int):int

【获取指定索引值处的行所包含的字符】
TextField.getLineText(lineIndex:int):String

【获取指定行索引所在行的第一个字符的索引值】
TextField.getLineOffset(lineIndex:int):int

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器