-
选择“文件”>“新建”。
-
在“新建文档”对话框中,选择“Flash 文件 (ActionScript 3.0)”,然后单击“确定”。
打开一个新的 Flash 窗口。
-
选择“文件”>“保存”,将 Flash 文件命名为
Greetings.fla
,然后单击“保存”按钮。
-
在 Flash 组件面板中,选择一个 TextArea 组件,并将其拖到“舞台”上。
-
在“属性”窗口中,选择舞台上的 TextArea 后,键入
aTa
作为实例名,然后输入下列信息:
-
将 ColorPicker 组件拖到舞台上,放在 TextArea 的左侧,并为其指定实例名称“txtCp”。在“属性”检查器中输入下列信息:
-
输入
96
作为 X 值。
-
输入
72
作为 Y 值。
-
将三个 RadioButton 组件拖到“舞台”上,分别为组件指定实例名称
smallRb
、
largerRb
和
largestRb
。在“属性”检查器中为它们输入下列信息:
-
为每个组件输入
100
作为 W 值,输入
22
作为 H 值。
-
输入
155
作为 X 值。
-
输入
120
作为 smallRb 的 Y 值,输入
148
作为 largerRb 的 Y 值,输入
175
作为 largestRb 的 Y 值。
-
输入
fontRbGrp
作为每个组件的 groupName 参数。
-
在组件的“参数”选项卡输入
Small
、
Larger
和
Largest
作为标签。
-
将一个 ComboBox 拖到“舞台”上,并为其指定实例名称
msgCb
。在“属性”检查器中为其输入下列信息:
-
输入
130
作为 W 值。
-
输入
265
作为 X 值。
-
输入
120
作为 Y 值。
-
在“参数”选项卡上,输入
Greetings
作为提示参数。
-
双击 dataProvider 参数的文本字段以打开“值”对话框。
-
单击加号,然后用
Hello World!
替换标签值
-
重复上一步骤,添加
Have a nice day!
和
Top of the Morning!
标签值
-
单击“确定”以关闭“值”对话框。
-
保存该文件。
-
如果尚未打开,请通过按
F9
或从“窗口”菜单选择“动作”以打开“动作”面板。单击主时间轴的第 1 帧,然后在“动作”面板中输入下面的代码:
import flash.events.Event;
import fl.events.ComponentEvent;
import fl.events.ColorPickerEvent;
import fl.controls.RadioButtonGroup;
var rbGrp:RadioButtonGroup = RadioButtonGroup.getGroup("fontRbGrp");
rbGrp.addEventListener(MouseEvent.CLICK, rbHandler);
txtCp.addEventListener(ColorPickerEvent.CHANGE,cpHandler);
msgCb.addEventListener(Event.CHANGE, cbHandler);
前三行导入应用程序使用的事件类。用户与组件之一进行交互时,会发生事件。接下来的五行为应用程序希望侦听的事件注册事件处理函数。用户单击 RadioButton 时发生
click
事件。用户在 ColorPicker 中选择其他颜色时发生
change
事件。用户从 ComboBox 的下拉列表选择其他问候时发生
change
事件。
第四行导入 RadioButtonGroup 类以便应用程序可以为一组 RadioButton 分配事件侦听器,而不是分别为每个按钮分配侦听器。
-
将下面一行代码添加到“动作”面板以创建
tf
TextFormat 对象,应用程序使用此对象更改 TextArea 中文本的
size
和
color
样式属性。
var tf:TextFormat = new TextFormat();
-
添加下列代码以创建
rbHandler
事件处理函数。在用户单击其中一个 RadioButton 组件时,此函数处理
click
事件。
function rbHandler(event:MouseEvent):void {
switch(event.target.selection.name) {
case "smallRb":
tf.size = 14;
break;
case "largerRb":
tf.size = 18;
break;
case "largestRb":
tf.size = 24;
break;
}
aTa.setStyle("textFormat", tf);
}
此函数使用
switch
语句检查
event
对象的
target
属性,以确定哪个 RadioButton 触发了事件。
currentTarget
属性包含触发事件的对象名称。根据用户单击的是哪个 RadioButton,应用程序将 TextArea 中文本的大小更改为 14、18 或 24 点。
-
添加下列代码以实现
cpHandler()
函数,此函数处理 ColorPicker 中的值的更改:
function cpHandler(event:ColorPickerEvent):void {
tf.color = event.target.selectedColor;
aTa.setStyle("textFormat", tf);
}
此函数将
tf
TextFormat 对象的
color
属性设置为 ColorPicker 中选定的颜色,然后调用
setStyle()
将此颜色应用到
aTa
TextArea 实例中的文本。
-
添加下列代码以实现
cbHandler()
函数,此函数处理 ComboBox 中选择的更改:
function cbHandler(event:Event):void {
aTa.text = event.target.selectedItem.label;
}
此函数只是将 TextArea 中的文本替换为 ComboBox 中选择的文本 (
event.target.selectedItem.label
)。
-
选择“控制”>“测试影片”或按 Ctrl+Enter 编译代码,然后测试 Greetings 应用程序。
下面的部分向您演示如何使用外部的 ActionScript 类,以及其“库”中只有必需组件的 FLA 文件构建相同的应用程序。