引用:Button组件Button组件是最常用的组件之一了,因为比较简单,所以打个前阵。1. 基本使用(1). Button 参数以下是您可以在属性检查器中或在“组件检查器”面板中为每个 Button 组件实例设置的创作参数:label 设置按钮上文本的值;默认值是“Button”。icon 为按钮添加自定义图标。该值是库中影片剪辑或图形元件的链接标识符;没有默认值。toggle 将按钮转变为切换开关。如果值为 true,则按钮在按下后保持按下状态,直到再次按下时才返回到弹起状态。如果值为 false,则按钮的行为就像一个普通按钮;默认值为 false。selected 如果 toggle 参数的值是 true,则该参数指定按钮是处于按下状态 (true) 还是释放状态 (false)。默认值为 false。labelPlacement 确定按钮上的标签文本相对于图标的方向。该参数可以是下列四个值之一:left、right、top 或 bottom,默认值是 right。您可以编写“动作脚本”,通过利用其属性、方法和事件来控制 Button 组件的这些选项以及其他选项。更多的属性请参考帮助手册。(2). Button 事件和第一版的组件不同,click handler需要自己定义。最简单的可以通过下面的方式:1 : buttonInstance.onRelease=function (){ 2 : // 此处是您的代码3 : }4 : //注意:v2内置的动作脚本 Button 对象没有 click 事件;应该使用 release。更多的事件定义请参考 FlashMX2004三种事件定义方式Button组件具有下面常用事件Button.onDragOut 当在按钮上按下鼠标按钮,然后将鼠标指针滑出按钮时调用。Button.onDragOver 当用户在按钮外部按下鼠标按钮,然后将鼠标指针拖动到按钮之上时调用。Button.onKeyUp 当释放按键时调用。Button.onKillFocus 当从按钮移除焦点时调用。Button.onPress 在鼠标指针位于按钮上方的情况下,按下鼠标按钮时调用。 Button.onRelease 在鼠标指针位于按钮上方的情况下,释放鼠标按钮时调用。Button.onReleaseOutside 在鼠标指针位于按钮内部的情况下按下按钮,然后将鼠标指针移到该按钮外部并释放鼠标按钮。 Button.onRollOut 当鼠标指针滚动到按钮区域之外时调用。Button.onRollOver 当鼠标指针滚过按钮时调用。Button.onSetFocus 当按钮具有输入焦点而且释放某按键时调用。(3). 创建Button把Button组件拖入舞台后,默认的库标识名为 Button ,并且不可更改,所以我们可以直接使用。如果需要在脚本中导入Button类,可以通过1 : import mx.controls.Button;2. 实例解析下面的例子动态创建一个Button组件01 : createClassObject(mx.controls.Button, "myButton" ,getNextHighestDepth(),{ label: 'Button' });02 : with(myButton){ 03 : trace(mx.controls.Button.version);04 : //设置基本参数05 : icon="icon1";06 : labelPlacement='left';07 : //toggle = true;08 : //selected =true;09 : 10 : //设置按钮样式11 : setStyle("fontWeight", "bold");12 : setStyle("textDecoration","underline");13 : setStyle("color","0xFF6600");14 : 15 : //进行按钮操作16 : setSize(100,35);17 : move(0,25);18 : 19 : //定义相关事件20 : myButton.onRollOver = function() { 21 : //this._alpha=60;22 : }23 : myButton.onRollOut = function() { 24 : //this._alpha=100;25 : }26 : myButton.onRelease = function() { 27 : trace("这是一个按钮");28 : }29 : }上面的例子对Button的各方面操作作了综合,更详细的部分请参考帮助手册。3. 心得技巧要让鼠标划过按钮时候显示手形光标可以设置:1 : myButton.useHandCursor=true; 要隐藏Button实例可以用:1 : myButton.visible = false;可以通过键盘按键来触发按钮事件:1 : myButton.onKeyDown = function () { 2 : if(Key.isDown(Key.ENTER)) 3 : trace ("按下了ENTER键");4 : };可以动态设置按钮的外观,通过定义下面属性 falseUpSkin 弹起状态。默认值为 RectBorder。 falseDownSkin 按下状态。默认值为 RectBorder。 falseOverSkin 悬停状态。默认值为 RectBorder。 falseDisabledSkin 禁用状态。默认值为 RectBorder。 trueUpSkin 切换状态。默认值为 RectBorder。 trueDownSkin 按下切换状态。默认值为 RectBorder。 trueOverSkin 悬停切换状态。默认值为 RectBorder。 trueDisabledSkin 禁用切换状态。默认值为 RectBorder。需要动态更改任何一种状态的外观,可以通过下面方式:(事先制作好不同的按钮外观MC到库中)1 : var initObject = new Object();2 : initObject.falseUpIcon = "icon1";3 : initObject.falseDownIcon = "icon2";4 : initObject.trueUpIcon = "icon3";5 : initObject.falseUpSkin = "icon4";6 : createClassObject(mx.controls.Button, "myButton" , getNextHighestDepth(),initObject);你也可以通过修改 Classes\mx\skins\halo 文件目录下的ButtonSkin.as文件来修改Button组件外观。同样我们也可以更改Button图标的8种不同状态。4. 参考资料 [ 无 ]