转:MX2004 v2组件参考:Button组件

      技术迷 2004-9-15 9:53
[from 世纪流年Blog站]
blog.liu21st.com/blog.php?job=art&articleid=a_20040913_154827

引用:
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. 参考资料 [ 无 ]
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}