Flex 非常实用的资料

【改变输出swf的尺度,背景颜色或帧频】 
在"Navigator"窗框里右键你的项目>选中"Properties">选中"ActionScript Compiler">在"Additional compiler arguments"里输入你所需要的命令 
如想改变背景颜色,请输入: -default-background-color 0xffffff 
【鼠标坐标】 
mouseX mouseY 
【检查变量类型并返回布尔值】 
is 
【检查变量类型并返回类型】 
typeof 
【检查对象类型并返回该对象】 
as 
【是数字但不是有效数字问题】 
var quantity:Number = 15 - "rabbits"; 
trace(typeof quantity); //显示: "number",但它是NaN (not a number) 
trace(quantity is Number); //true 
trace(quantity != NaN); //false 
//使用isNaN()函数检测: 
isNaN(quantity); //true 
//检测变量是否内含有效数字: 
!isNaN(quantity); //false 
【取消默认的严格编译模式】 
在"Navigator"窗框里右键你的项目>选中"Properties">选中"ActionScript Compiler">取消"Enabel compile-time type checking"选项 
【基元数据类型和复杂数据类型好比"值类型"和"引用类型"】 
基元数据类型类似按值传递: 
var intOne:int = 1; 
var intTwo:int = 1; 
trace(intOne == intTwo); //true 
【复杂数据类型类似按引用传递】 
var arrayOne:Array = new Array("a","b"); 
var arrayTwo:Array = arrayOne; 
trace(arrayOne == arrayTwo); //true 
//----------------------------------- 
var arrayTwo:Array = new Array("a",255)">trace(arrayOne == arrayTwo); //false 
【优化逻辑AND(&&)和OR(||)的小知识】 
对于逻辑And(&&): 
除非条件表达式的前半部分为真,否则,ActionScript不会再去求算逻辑AND运算符的后半部.如果前半部为假,整个条件表达式一定为假,所以再去求算后半部就没效率了. 
对于逻辑OR(||): 
除非条件表达式前半部为假,ActionScript不会再去求算逻辑OR运算符的后半部,如果前半部为真,整个条件表达式一定为真. 
总结:使用逻辑AND(&&)时,把结果最可能为false的表达式放到前面;使用逻辑OR(||)时,把结果最可能为true的表达式放到前面. 
【Timer类注意事项】 
不要认为Timer可以极其准确;使用Timer时间间隔不要低于10毫秒. 
【private,protected,internal,public访问权限】 
private:只能在类本身内部访问,按惯例,命名私有成员时以下划线"_"开头; 
protected:可以由类本身或任何子类访问.但这是以实例为基础的.换言之,类实例可以访问自己的保护成员或者父类的保护成员,但不能访问相同类的其它实例的保护成员,命名保护成员时以下划线"_"开头; 
internal:可以由类本身或者相同包内的任何类访问; 
public:可以在类内部访问,也可以由类实例访问,或者声明为static时,可以直接从类访问. 
【一个函数具有未知个数的参数,用arguments对象或"...(rest)"符号访问它的参数】 
注意:使用"...(rest)"参数会使 arguments 对象不可用; 
private funciton average():void{ 
trace(arguments.length); //输出参数的个数 
// arguments的类型是:object,但可以像访问数组一样去访问它 
trace(arguments[1]); //输出第二个参数 

private function average(...argu):void{ 
trace(argu[1]); //输出第二个参数,argu参数名是自定义的. 
【错误处理try,catch,finally】 
private function tryError():void{ 
try { 
trace("测试开始-try"); 
throwError(); 
}catch(errObject:Error) { 
trace("错误信息:" + errObject.message); 
trace("测试结束-catch"); 
return; 
}finally{ 
trace("虽然catch里已经有return方法,但位于return方法后面的finally里的代码依然会被执行.其实无论return方法是在try里,还是catch里,finally里的代码始终会被执行"); 
trace("前面已经有return了,此处是不会再执行的.除非没有抛出错误,以使catch里的代码没有被执行"); 
private function throwError():void{ 
throw new Error("抛出错误"); 
【for...in与for each...in的区别】 
与for...in循环不同的是,for each...in循环中的迭代变量包含属性所保存的值,而不包含属性的名称(或主键,索引). 
【命名包路径的小技巧】 
使用相应于拥有者和相关项目的包名称会比较好.按惯例来讲,包名称的开头应该是逆向的网址名称.例如,如果Example Corp(examplecorp.com)写了一些ActionScript3.0类,就会把所有类放在com.examplecorp包内(或者 com.examplecorp的子包内).如此一来,如果英国有另一家Example Corp(examplecorp.co.uk)也写了一些ActionScript3.0类,只要使用包uk.co.examplecorp,就可确保唯一性. 
当类属于特定应用程序的一部分时,就应该放在该应用程序特定的子包内.例如,Example Corp可能有个应用程序名叫WidgetStore.如果WidgetStore应用程序使用一个名为ApplicationManager的类,则此类就应该放在com.examplecorp.widgetstore包内,或者位于该包的子包内. 
按惯例来说,包名称的开头是小写字母. 
【隐式的取出方法(getter)和设定方法(setter)】 
public function get count():uint { 
return _count; 
public function set count(value:uint):uint { 
if(value < 100){ 
_count = value; 
}else { 
throw Error(); 
【确保类是绝不会有子类,使用final】 
final public class Example{} 
【super关键字的使用】 
super(); //父类的构造函数,只能在类实例构造函数内部使用 
super.propertyName; //调用父类的属性,属性需要声明为public或protected 
super.methodName(); //调用父类的方法,方法需要声明为public或protected 
【建立常数,使用关键字const而不是var】 
static public const EXAMPLE:String = "example"; 
【检测播放器版本】 
flash.system.Capabilities.version 
对于8.5版以前的任何Flash Player版本,这种方法都不适用. 
【判断客户端系统】 
flash.system.Capabilities.os 
【检测播放器类型】 
flash.system.Capabilities.playerType 
可能的值有: 
"StandAlone",用于独立的 Flash Player 
"External",用于外部的 Flash Player 或处于测试模式下 
"PlugIn",用于 Flash Player 浏览器插件 
"ActiveX",用于 Microsoft Internet Explorer 使用的 Flash Player ActiveX 控件 
【检测系统语言】 
flash.system.Capabilities.language 
【判断用户是否启用了IME(输入法编辑器)】 
flash.system.IME.enabled 
【检测屏幕的分辨率】 
flash.system.Capabilities.screenResolutionX 
flash.system.Capabilities.screenResolutionY 
【把弹出窗口居中的算法】 
X = (舞台宽/2)-(窗口宽/2) 
Y = (舞台高/2)-(窗口高/2) 
【控制影片配合Player的方式,包括缩放问题】 
stage.scaleMode 
可供选择值:flash.display.StageScaleMode 
【舞台的对齐方式】 
stage.align 
可供选择值:flash.display.StageAlign 
【隐藏Flash Player的右键菜单】 
stage.showDefaultContextMenu = false; 
【检测系统是否具有音频功能】 
flash.system.Capabilities.hasAudio 
【检测播放器是在具有MP3解码器的系统上运行,还是在没有MP3解码器的系统上运行】 
flash.system.Capabilities.hasMP3 
【检测播放器能 (true) 还是不能 (false) 播放流式视频】 
flash.system.Capabilities.hasStreamingVideo 
【检测播放器是在支持 (true) 嵌入视频的系统上运行,还是在不支持 (false) 嵌入视频的系统上运行】 
flash.system.Capabilities.hasEmbeddedVideo 
【检测播放器能 (true) 还是不能 (false) 对视频流(如来自 Web 摄像头的视频流)进行编码】 
flash.system.Capabilities.hasVideoEncoder 
【显示 Flash Player 中的" 安全设置 "面板】 
flash.system.Security.showSettings(); 
可供选择项:flash.system.SecurityPanel 
【让其它域的.swf访问本域的.swf】 
在本域的.swf文件里加上:flash.system.Security.allowDomain() 
或者使用安全策略文件"crossdomain.xml".在Flash 8以前,这个文件必须放在.swf所在域的根目录,现在,你可以使用flash.system.Security.loadPolicyFile(),指定安全策略文件所在的位置.拒绝任何域的做法是在<cross-domain-policy>标签内什么也不填,安全策略文件也支持通用字符 "*": 
<?xml version="1.0"?> 
<!-- http://www.mydomain.com/crossdomain.xml --> 
<cross-domain-policy> 
<allow-access-from domain="www.riahome.cn" /> 
<allow-access-from domain="*.Y-boy.cn" /> 
<allow-access-from domain="210.38.196.48" /> 
<allow-access-from domain="*" /> 
</cross-domain-policy> 
【数字的不同进制之间的转换】 
parseInt(str:String,radix:uint = 0):Number 返回十进制的数,参数radix表示要分析的数字的基数.如果省略radix,就默认为10,除非字符串的开头是"0x","0X"或"0": 
trace(parseInt("0x12")); //设定radix为16,输出:18 
trace(parseInt("017")); //设定radix为8,输出:15 
或者使用Number,uint和int对象的toString(radix)方法. 
【使用Math.round()对一个数取整,四舍五入】 
Math.round() 
trace(Math.round(204.499)); //输出:204 
trace(Math.round(401.5)); //输出:402 
【使用Math.floor()对一个数向下取整,就是只要整数部分而不理会小数分】 
trace(Math.floor(204.99)); //输出:204 
【使用Math.ceil()对一个数向上取整,只要小数部分不为零,整数部分就加1】 
trace(Math.ceil(401.01)); //输出:402 
【产生一个随机数】 
使用Math.random()产生一个伪随机数n,其中 0 <= n < 1 
【把数字取至最近的小数点位,即指定精确度】 
1. 决定你要取的数字的小数点位数:例如,如果你想把90.337取成90.34,就表示你要取到两位小数点位,也就是说你想取至最近的0.01; 
2. 让输入值除以步骤1所选的数字(此例为0.01); 
3. 使用Math.round()把步骤2所计得的值取成最近的整数; 
4. 把步骤3所得的结果乘以步骤2用于除法的那个值. 
例如,要把90.337取成两个小数点位数,可以使用: 
trace(Math.round(90.337/0.01)*0.01); //输出:90.34 
【把数字取成一个整数的最接近倍数值】 
例1,这样会把92.5取成5的最近倍数值: 
trace(Math.round(92.5/5)*5); //输出:95 
例2,这样会把92.5取成10的最近倍数值: 
trace(Math.round(92.5/10)*10); //输出:90 
【在指定数值范围内获得随机数】 
//可取范围:[min,max] 
private function randRange(min:Number,max:Number):Number { 
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min; 
return randomNum; 
应用例子: 
模拟投银币,即希望得到随机布尔值(true 或 false): randRange(0,1); 
模拟投骰子,即希望得到随机六个值: randRange(1,6); 
为避免被缓存而需要产生一个独一无二的数字追加在URL尾端,通常最佳方法是取得当前毫秒数. 
【弧度(radian)与度数(degree)之间的转换】 
从弧度转为度数: degrees = radians * 180 / Math.PI 
从度数转为弧度: radians = degrees * Math.PI / 180 
【计算两点之间的距离】 
勾股定理: c2 = a2 + b2 
假设有两个影片剪辑mc1和mc2,则它们两点间的距离c为: 
var c:Number = Math.sqrt(Math.pow(mc1.x - mc2.x,2) + Math.pow(mc1.y - mc2.y,2)); 
【模拟圆周运动】 
已知圆心o(x0,y0),半径r和弧度angle,求圆上任意一点P(x,y)的坐标: 
x = x0 + (Math.cos(angle) * r); 
y = y0 + (Math.sin(angle) * r); 
注意:舞台的x轴正方向水平向右,y轴正方向垂直向下. 
【模拟椭圆运动】 
x = x0 + (Math.cos(angle) * a); 
y = y0 + (Math.sin(angle) * b); 
【华氏温度和摄氏温度之间的转换】 
华氏温度 = 摄氏度数 * 9 / 5 + 32 
摄氏温度 = (华氏度数 - 32) * 5 /9 
【公斤与磅之间的转换】 
公斤 = 磅 * 2.2 
磅 = 公斤 / 2.2 
【向数组尾端添加元素】 
var array:Array = new Array(); 
array.push("a",255)">//向数组尾端添加单一元素也可以这样: 
array[array.length] = "c"; 
//如果以索引设定的元素不存在,数组本身会自动扩展以包含足够的元素数目.介于中间的元素会被设为undefined: 
array[5] = "e"; 
trace(array[4]); //输出: undefined 
【向数组开端添加元素】 
var array:Array = ["a","b"]; 
array.unshift("c","d"); 
trace(array); //输出: c,d,a,b 
【删除数组中第一个元素并返回该元素,使用shift()方法】 
var letters:Array = new Array("a","b","c"); 
var firstLetter:String = letters.shift(); 
trace(letters); //输出: b,c 
trace(firstLetter); //输出: a 
【删除数组中最后一个元素并返回该元素的值,使用pop()方法】 
trace(letters); //输出: a,b,255)">var letter:String = letters.pop(); 
trace(letter); //输出: c 
【删除数组中的元素,给数组添加新元素并返回删除的元素,使用splice()方法】 
splice(startIndex:int,deleteCount:uint,... values):Array 
startIndex: 一个整数,它指定数组中开始进行插入或删除的位置处的元素的索引; 
deleteCount: 一个整数,它指定要删除的元素数量; 
... values: 用逗号分隔的一个或多个值的可选列表或数组,此列表或数组将插入到此数组中由 startIndex 参数指定的位置. 
【查找数组中第一个相匹配的元素】 

var match:String = "b"; 
for(var i:int = 0; i < array.length; i++) { 
if(array[i] == match) { 
trace("Element with index " + i + " found to match " + match); 
//输出: Element with index 1 found to match b 
break; 
【查找数组中最后一个相匹配的元素】 
for(var i:int = array.length - 1; i >= 0; i--) { 
//输出: Element with index 5 found to match b 
【把字符串转成数组】 
使用String.split()方法: 
var list:String = "I am YoungBoy."; 
var words:Array = list.split(" "); //以空格作为分隔符将字符串切割 
trace(words); //输出: I,am,YoungBoy. 
【把数组转成字符串】 
使用String.join()方法: 
var myArr:Array = new Array("one","two","three"); 
var myStr:String = myArr.join(" and "); 
trace(myArr); //输出: one,two,three 
trace(myStr); //输出: one and two and three 
【使用对象数组处理相关数据】 
var cars:Array = new Array(); 
cars.push({make:"Mike",year:1997,color:"blue"}); 
cars.push({make:"Kelly",year:1986,color:"red"}); 
for(var i:int = 0; i < cars.length; i++) { 
trace(cars[i].make + " - " + cars[i].year + " - " + cars[i].color); 
//输出: 
// Mike - 1997 - blue 
// Kelly - 1986 - red 
【在数组中获取最小或最大值】 
var scores:Array = [10,4,15,8]; 
scores.sort(Array.NUMERIC); 
trace("Minimum: " + scores[0]); 
trace("Maximum: " + scores[scores.length - 1]); 
【使用for ... in语句读取关联数组元素】 
var myObject:Object = new Object(); 
myObject.name = "YoungBoy"; 
myObject.age = 20; 
for(var i:String in myObject) { 
trace(i + ": " + myObject[i]); 
//输出: name: YoungBoy 
// age: 20 
注意: for ... in循环不会显示对象所有的内建属性.例如,循环会显示执行期间新增的特殊属性,但是,不会列出内建对象的方法,即使都是储存在对象属性内. 
【AVM(ActionScript Virtual Machine,虚拟机)和渲染引擎(Rendering Engine)】 
AVM负责执行ActionScript程序,而渲染引擎则是把对象绘制在显示器上. 
【指出容器的显示清单中有多少显示对象】 
每个容器都有numChildren属性. 
【把项目新增至显示清单】 
addChild(child:DisplayObject) 
addChildAt(child:DisplayObject,index:int) 
index: 添加该子项的索引位置.如果指定当前占用的索引位置,则该位置以及所有更高位置上的子对象会在子级列表中上移一个位置. 
【从显示清单中移除项目】 
removeChild(child:DisplayObject) 
removeChildAt(index:int) 
index: 要删除的 DisplayObject 的子索引,该子项之上的任何显示对象的索引位置都减去1. 
如果想移除窗口所有子元件,可以结合removeChildAt(),numChildren属性以及for循环.因为每次一个子元件被移除时,索引位置都会变化,所以,有两种方法可以处理所有子元件的移除: 
1. 总是移除位置0的子元件; 
2. 倒过来移除子元件,也就是从尾端开始. 
【更改现有子项在显示对象容器中的位置】 
setChildIndex(child:DisplayObject,index:int):void 
可能用到的方法: 
返回 DisplayObject 的 child 实例的索引位置: getChildIndex(child:DisplayObject):int 
返回位于指定索引处的子显示对象实例: getChildAt(index:int):DisplayObject 
注意: 当子元件移到低于它现在所在位置的索引时,那么,从标的索引起,直到子元件索引前面的那个索引的所有子元件都会令其索引增加1,而该子元件就会指定至标的索引.当子元件移到较高索引时,从该子元件索引之上的那个索引起,直到标的索引的所有子元件都会令其索引往下减1,而该子元件就会指定至标的索引值. 
【关于TextField以垂直方式把文字摆在按钮表面中心点的小技巧】 
textField.y = (_height - textField.textHeight) / 2; 
textField.y -= 2; //减2个像素以调整偏移量 
【外部.swf影片载入和互动】 
1. 监听init事件; 
2. 透过content属性存取所载入的影片. 
当所载入的影片做好足够的初始化工作,使其方法和属性可以接受互动时,init事件就会被发起.只有在载入器发起init事件后,才能控制影片.所载入的影片还没初始化就试着与它互动,是会产生执行期间错误的. 
_loader.contentLoaderInfo.addEventListener(Event.INIT,handleInit); //当载入的.swf的属性和方法可用时 
_loader.load(new URLRequest("ExternalMovie.swf")); 
private function handleInit(event:Event):void { 
var movie:* = _loader.content; 
trace(movie.getColor()); 
movie.setColor(0xFF0000); 
【TextField有两种类型:动态(dynamic)和输入(input),默认值为动态.改变TextField类型方法】 
field.type = TextFieldType.INPUT; //selectable属性默认值为true 
flash.text.TextFieldType.INPUT和flash.text.TextFieldType.DYNAMIC 
【过滤文字输入】 
TextField.restrict = "此处为可输入的内容"; 
field.restrict = "^此处为禁止输入的内容"; 
restrict属性支持一些类似正则表达式的样式: 
field.restrict = "a-zA-z"; //只允许大小字母 
field.restrict = "a-zA-z "; //只允许字母和空格 
field.restrict = "0-9"; //只允许数字 
field.restrict = "^abcdefg"; //除了小写字母abcdefg不允许外,其它都允许 
field.restrict = "^a-z"; //所有小写字母都不允许,其它内容都允许,包括大写字母 
field.restrict = "0-9^5"; //只允许数字,但5例外 
让restrict字符包含具有特殊意义的字母(例如-和^): 
field.restrict = "0-9\\-"; //允许数字和破折号 
field.restrict = "0-9\\^"; //允许数字和^ 
field.restrict = "0-9\\\\"; //允许数字和反斜杠 
你也可以使用Unicode转义序列,指定允许的内容.例如: 
field.restrict = "^\u001A"; 
注意:ActionScript有区分大小写的,如果restrict属性设为abc,允许字母的大写形式(A,B和C)输入时会变成小写对待形式(a,b和c),反之亦然.restrict属性只影响用户可以输入的内容,脚本可将任何文本放入文本字段中. 
【设定输入框的最大长度】 
TextField.maxChars:int 
【向TextField追加内容】 
TextField.appendText(text:String):void 
与通过对 text 属性使用加法赋值来连接两个字符串(例如 field.text += moreText)相比,此方法的效率更高. 
【显示HTML格式的文字】 
TextField.htmlText = "<b>Html text</b>"; 
支持的HTML标签集有: <b>,<i>,<u>,<font>(有face,size以及color属性),< p>,<br>,<a>,<li>,<img>以及<textformat>(有 leftmargin,rightmargin,blockindent,indent,leading以及tabstops属性,相应于 TextFormat类的同名属性) 
【缩减空白】 
TextField.condenseWhite = true; 
删除具有HTML文本的文本字段中的额外空白(空格,换行符等),如同多数HTML浏览器所做的那样. 
注意: 在设置 htmlText 属性之前设置 condenseWhite 属性 
【自动大小调整和对齐】 
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的最大值,255)">numLines: 定义多行文本字段中的文本行数,255)">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"}; 
【对用户输入的文字进行样式化】 
使用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,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",255)">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()把起始和结尾的索引参数都设成相同值,在文字内设定游标位置(假设具有焦点): 
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就是刚才拥有焦点的对象的引用地址,即下一个获得焦点的对象的引用地址 
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


一:display:flex布局display:flex是一种布局方式。它即可以应用于容器中,也可以应用于行内元素。是W3C提出的一种新的方案,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持。Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵
1. flex设置元素垂直居中对齐在之前的一篇文章中记载过如何垂直居中对齐,方法有很多,但是在学习了flex布局之后,垂直居中更加容易实现HTML代码:1<divclass="demo">2<divclass="inner">3<p>这是一个测试这是一个测试这是一个测试这是一个测试这是一个测试</p>4</div
移动端开发知识点pc端软件和移动端apppc端软件是什么,有哪些应用。常见的例子,比如360杀毒,photoShop,VisualStudioCode等等移动端app是什么,有哪些应用。常见的例子,比如手机微信,手机qq,手机浏览器,美颜相机等等PC端与移动端的区别第一:PC考虑的是浏览器的兼容性,移动端考
最近挺忙的,准备考试,还有其他的事,没时间研究东西,快周末了,难得学点东西,grid是之前看到的,很好奇,讲的二维的布局,看起来很方便,应该很适合移动端布局,所以今天抽时间学一学,这个当是笔记了。参考的是阮老师的博客。阮一峰:CSSGrid网格布局教程http://www.ruanyifeng.com/blog/2019/03/g
display:flex;把容器设置为弹性盒模型(设置为弹性盒模型之后,浮动,定位将不会有效果)给父元素设置的属性:(1)display:flex---把容器设置为弹性盒模型。(2)flex-direction---设置弹性盒模型主轴方向默认情况下主
我在网页上运行了一个Flex应用程序,我想使用Command←组合键在应用程序中触发某些操作.这在大多数浏览器上都很好,但在Safari上,浏览器拦截此键盘事件并导致浏览器“返回”事件.有没有办法,通过Flex或通过页面上的其他地方的JavaScript,我可以告诉Safari不要这样做?解决方法:简短的
flex布局,flex-item1<template>2<viewclass="container">3<viewclass="greentxt">4A5</view>6<viewclass="redtxt">7B8<
我应该设计一个大型多点触控屏幕的应用程序.从大到大,我的意思是新闻广播员(大约55英寸及以上).该应用程序是一个交互式地图.我的问题是:开发应用程序的技术.我的第一个想法是在AdobeFlex中制作,但是HTML5也是如此……必须有一些非常棒的Java库用于触摸交互,但是在Windows平台上
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible&quo
【1】需求:  【2】解决方案:最近遇到布局上要求item两端对齐,且最后一行在列不满的情况下要求左对齐,使用flex的justify-content:space-between;实现时发现最后一行不能左对齐,而是两端对齐方式。 不是项目上想要的效果#网上查了一些资料,有两种方法可以实现效果:**1.
我有一个java套接字服务器,它在连接时将Animal对象发送到Flash客户端.对象发送方式如下:Amf3Outputamf3Output=newAmf3Output(SerializationContext.getSerializationContext());amf3Output.setOutputStream(userSocket.getOutputStream());amf3Output.writeObject(animal)
我正在开发一个Flex3.4应用程序,它通过最新版本的BlazeDS与JBoss-4.2.2服务器上运行的JavaEE后端进行交互.当我在Tomcat上从FlashBuilder4beta2运行Flex应用程序时,一切都很好,Flex应用程序能够进行所需的远程调用.但我的生产环境是在JBoss上,当我将应用程序移动到JBoss时(更
我有一个非常大的问题.我使用Flex3/Tomcat/BlazeDS/Spring编写了一个大型应用程序,在本地开发时运行良好,当我部署到公共开发环境时很好,但是当部署到我们的测试环境时经常失败.当远程处理请求花费大量时间(超过20秒)时,故障似乎最常发生.在我的开发服务器上,错误发生,但仅
弹性和布局display:flex在ie6,ie7不兼容状态,一般在pc用的比较少,在手机端所有的浏览器都是支持的控制子元素在父元素里面的位置关系display:flex是给父元素加的文档流是按照主轴排列,只要父元素加了flex,那么里面的子元素全部可以直接添加宽高主轴的方向
FLEX2.0源码分析(一)https://www.jianshu.com/p/8bc4c5f4b19fFLEX源码分析二(网络监测swizzle)https://www.jianshu.com/p/ffb95f2cbda6FLEX源码分析三(网络监测记录FLEXNetworkRecorder)https://www.jianshu.com/p/66267dc922c5FLEX源码分析四(Systemlog)https://www.jianshu.
1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<title><itle>6<style>7*{8margin:0;9padding:0;10
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible&qu
flex:将对象作为弹性伸缩盒显示inline-flex:将对象作为内联块级弹性伸缩盒显示两者都是使子元素们弹性布局,但是如果是flex,父元素的尺寸不由子元素尺寸动态调整,不设置时默认是100%,而inline-flex则会使父元素尺寸跟随子元素们的尺寸动态调整。
<html><head><metacharset="utf-8"><metaname="viewport"content="width=device-width"><title>test<itle><stylemedia="screen">.tab-head{list-style-type:no
有没有办法使用邮政编码找到径向距离?我的任务是搜索居住在指定距离内的所有用户.我知道用户的zipcodes.例如,距离当前位置25英里的用户.我有其他搜索类别,我正在使用mysql查询.我无法解决距离问题.我的后端是在PHP中Flex的前端和前端.对我来说最好的选择就是www.zip-codes.com