Flash4使用详解 (二十)
---摘自《CPCW》(文/陈涛)
创建界面元素
概述
利用Flash的互动特性可创建一些常见的界面元素,如弹出菜单、下拉列表框和命令菜单等,这些元素对从表单中收集数据和与被演示者交互很有帮助。
创建表单
表单是交互的高级应用,它结合使用按钮、影片和文本区向本地或远程服务器的应用程序传送信息。所有常见的表单元素如单旋钮、复选框和下拉列表框等都可以影片或按钮的形式创建;使用这些元素的常见的表单如调查表、订单和搜索界面,例如Flash表单可以收集地址信息并把它们发送到另一应用程序,该应用程序可根据该信息发送电子邮件或把它存入数据库文件。
构成表单的元素可分为两类,一类是构成表单外观的Flash元素,另一类是服务器短的应用程序或客户端脚本,它们用来处理用户输入的信息。下面是在Flash中创建表单的大致步骤:
1, 在Flash中创建一包含表单元素的库。
2, 根据预定的表单的格式把文本框和表单元素的实例放入影片中。
3,
在每个文本框的属性页中设置变量,注意每个变量名应是唯一的,且最好有一定含义。
4, 为按钮设置把数据发送至Flash播放器或基于Web的应用程序中的动作。
创建能与Web服务器交互的表单
使用“Get URL”语句可以向数据库、电子邮件和其他应用程序发送变量(可以把“Get
URL”作为“with mailto:username@company.com”中的URL参数在浏览器中直接发送电子邮件),而使用“Load
Variables”语句则可以从Web服务器中收集变量。例如,可以使用“Load
Variables”语句使远程服务器中相应的内容刷新影片片断中变量的内容,并把它作为当前信息显示。这两条语句的详细用法可参见“跳转至指定的URL”部分和“从本地机以外的地方获取变量”部分。
创建对话框
下面的例子演示了创建搜索对话框的步骤,它由一个文本框和一个带“Get
URL”语句的按钮组成,当在文本框中输入所要的信息并点按按钮后,用户就向远程服务器的搜索引擎发送了查找关键字。
创建一简单的搜索对话框
1,
创建一用于提交输入数据的按钮,考虑到按钮会重复使用,它上面不必加任何文本。
2, 在舞台上创建标签、空白文本框和按钮的一个实例如图。

3, 选择文本框,执行“Modify > Text Field”命令。
4,
指定与该文本框联接的变量名(对有些搜索引擎该变量可以指定好,具体可向搜索引擎提供者查询),选中“Draw
Border and Background”和“Include All Font Outlines”选项,单击“OK”按钮。
5, 在舞台上选中按钮,执行“Modify > Instance”命令。
6, 在出现的“Instance Properties”对话框中打开“Actions”页,单击“+”按钮,从弹出的菜单中选“Get
URL”项。
7, 在参数面板中作如下设置:
l 在URL区中输入搜索引擎的URL。
l 在“Window”下拉列表框中,选“_blank”项,这将使搜索结果在一新窗口中显示。
l 在“Variables”下拉列表框中,选择“Send Using GET”项。
8, 在按钮上创建一文本区并在其中输入按钮的描述文本。
9, 执行“File > Publish Preview > HTML”命令察看实际效果。
验证输入数据
对于一向Web服务器传送变量的表单而言,需要对使用者输入数据的正确性进行验证,如果在接受电话号码的文本区中存在文本,那么输入信息肯定有错误。“Set
Variable”语句和“Loop”、“If”语句结合使用可检验输入数据的正确性。
下面的脚本检查输入的信息是否是数字且按“###-###-####”的格式,如果输入合法,将显示“Good,
this is a valid phone number!”消息框,否则将显示“This phone number is
invalid!”:
On (Release)
If (Length(PhoneNumber) = 12)
Set Variable: "Index" = 1
Set Variable: "Valid" = true
Loop While (Index <= 12 and Valid)
Set Variable: "Char" = Substring(PhoneNumber,Index,1)
If (Index = 4 or Index = 8)
If (Char ne "-")
Set Variable: "Valid" = false
End If
Else
If (not (Ord(Char) >= Ord("0") and Ord(Char) <= Ord("9")))
Set Variable: "Valid" = false
End If
End If
Set Variable: "Index" = Index+1
End Loop
Else
Set Variable: "Valid" = false
End If
If (Valid = true)
Set Variable: "Message" = "Good, this is a valid phone number!"
Else
Set Variable: "Message" = "This phone number is invalid!"
End If
End On
创建一包含下列语句的按钮用于发送数据:
On (Release)
If (Valid = true)
Get URL ("www.webserver.com", window="_self", vars=GET)
End If
End On
创建弹出菜单
创建弹出菜单有以下两个步骤:
l 在弹出菜单所包含的所有按钮的属性对话框中选中“Track As Menu”项,这时菜单中所有按钮都能接受到鼠标释放事件。
l
把弹出菜单展开时所占的区域用一个大的按钮包围起来,该按钮用于当鼠标指针移出菜单区域且按钮被释放时使菜单收回。
下面是创建一简单的弹出菜单的较为详细的步骤,这里假定使用者已经掌握创建按钮和影片片断符号的操作和为按钮和帧设置动作。
创建按钮
1, 创建一弹出菜单中使用的按钮的符号。
2, 在该按钮符号时间轴的“Up”帧中画一个以白色填充的矩形。
3, 在该按钮符号时间轴的“Over”帧中创建一关键帧。
4, 用另一种高亮度颜色填充矩形。不需要定义按钮的“Down”和“Hit”帧。
创建弹出菜单影片动画
1, 创建一新的影片片断符号。
2, 将上面创建的按钮的一个实例置于该影片片断的第一帧。
3, 双击该按钮,在它的属性对话框中打开“Actions”页。
4, 单击“+”按钮,从弹出菜单中选择“On MouseEvent”,在参数面板中选择“Press”项,选中“On
(Press)”行,从弹出菜单中选择“Go To”,在右面的参数面板中选“Number”单选项,并把帧数定为1。
当用户单击按钮时,该动作使影片片断跳至下一帧,使菜单展开;使用“On
(Press)”事件作为触发器使弹出菜单立即响应单击事件,而不像一般按钮响应鼠标按钮的释放事件。
5,双击时间轴窗口的第一帧,在它的属性对话框中打开“Actions”页,单击“+”按钮,从弹出菜单中选择“Go
To”项,在右面的参数面板中选“Number”单选项,并把帧数定为1。
在单击弹出菜单中的按钮之前,该动作使第一帧反复被播放,在单击弹出菜单中的按钮之后,将从第2帧起播放。
1, 第2帧中创建关键帧。
2,
根据先前创建的按钮符号创建数个按钮实例并把它们排成一列置于第1帧中创建的按钮之下。
3, 执行“Modify > Align”命令使这些实例对齐并均匀排列。
4, 为每个实例加入文本。
5, 顺次双击创建的每个按钮,在出现的“实例属性(Instance Properties)”对话框中执行如下操作:
l 单击“Definition”页,选择“Track as Menu”项。正如前所述,选中该项后对某一按钮单机会使其他按钮收到鼠标键放开事件。
l 单击“Actions”页,选择各菜单项要完成功能所对应的语句,然后加上“Go
To”语句使影片片断返回到第一帧,下面是一个简单的实例:
On (Release)
Toggle High Quality
Go To and Stop (1)
End On
“Go To”语句在用户选择菜单项后关闭菜单。
6, 要测试弹出菜单,可创建弹出菜单影片片断的一个实例,执行“Control
> Test Movie”命令。
当单击菜单以外区域时,关闭菜单
1, 创建以新的矩形按钮符号,其颜色和大小与舞台相同。
因为不需要看见按钮被单击,所以不必定以它的“Down”、“Over”和“Hit”态。
2,
在“符号编辑”模式下打开影片,在当前工作层的下方创建一新层。
3, 创建该矩形按钮的一个实例。
4, 双击该按钮,在出现的“实例属性(Instance Properties)”对话框中选中“Track
as Menu”项,为它加入一“Go To”语句使影片片断返回第一帧。
要测试弹出菜单,可创建弹出菜单影片片断的一个实例,执行“Control
> Test Movie”命令。