FLASH CS4 实战项目——填数字游戏
情人节故事-小学生法制教育案例
FLASH CS4 实战项目——填数字游戏
在具有交互效果的动画中,一般是通
过使用Flash组件与ActionScript来实现的。本实例
首先通过随机生成两个文本框中的
数值,然后运用ActionScript中的加减运算、赋值语句和条
件语句进行判断所输入的结果是
否正确来实现的,如图3-8所示。
图3-8 填数字游戏效果图
(1)新建一个520×367像素的空白文
档,并创建“背景”层,导入素材图像。然
后新
建“填数字游戏”图层,添加“填数字
游戏”文本并设置属性,如图3-9所示。
图3-9 导入素材并输入文本
(2)新建box1影片剪辑元件。在创建
的“文
本”图层中,选择第1帧并添加文本。
然后分别在第2帧和第3帧插入空白关键帧
并添加内容,
如图3-10所示。
图3-10 编辑图层内容
“+”号和“=号字体为“创艺简仿宋”,
字号为48。在第2帧将“对”元件拖
至舞台;在第3帧将“错”元件拖至舞
台。
(3)新建“输入框”图层,选择其第1
帧,执行【窗口】|【组件】命令,从【组
件】面板中拖入舞台三个文本框,设置其属性,并将其分别实例化。然后删除后两帧,如图
3-11所示。
图3-11
添加实例化对象
从左到右三个文本框的实例化名称依
次是numTxt1、numTxt2和
numTxt3,
三个文本框的【宽度】为54,高度为4
0。
(4)新
建“按钮”图层,分别在第1帧
和第2帧插入按钮组件。然后在
【
属性】检
查
器中,分别设置其实例化名称为okbtnt和
backbtn,如图3-12所示。
图3-12 添加实例化对象
(5)新建as图层,分别将前3帧转换
为关键帧,
执行【窗口】|【动作】命令,
为各帧添加停止播放代码“stop();”,如图3-
13所
示。
图3-13 为as图层各帧添加代码
(6)单击“场景
1”,返回舞台。新建
“组件”图层。然后把box1元件拖至舞台,
并设置其实例化名称为b
oxContent,如图3-
14所示。
图3-14 导入元件并将其实例化
(7)新建“动作脚本”图层。按F9快
捷键,打开【动作】面板。创建输入文本框
和
按钮中文本样式的变量分别为styl和btnst
yle,并设置样式属性。代码如下:
var styl:TextFormat=new TextFormat();
创建输入文本框组件的文本样式
=35;
定义文本的字体大小
=0x000000;
定义文本的字体颜色
=;
定义文本的对齐方式为居中对齐
var btnstyle:TextFormat=new
TextFormat();
创建按钮组件的文本样式
=14;
定义文本的字体大小
(8)用ActionScript代码定义输入文本
框和按钮
的样式,并设置输入文本框的编辑
方式和初始值等属性。代码如下:
=String((Math.
random()*5));
*获取0到5之间的随
机整数并赋给影片剪辑b
oxContent中的输入文本框numTxt2*
=String((Math.
random()*5+5));
*获取5到10之
间的随机整数并赋给影片剪辑
boxContent中的输入文本框numTxt3*
ct=
*定义影片剪辑boxContent中的输入文本框允
许输入的字符*
le=false;
*定义影片剪辑boxContent中的输入文本框nu
mTxt2的内容不可编辑*
le=false;
*定义影片剪辑boxContent中的输入文本框nu
mTxt3的内容不可编辑* le(
*为影片剪辑boxContent中的输入文本框numT
xt1应用文本样式*
le(
*为影片剪辑boxContent中的输入文本框numT
xt2应用文本样
式*
le(
*为影片剪辑boxContent中的输入文本框numT
xt3应用
文本样式*
=算算看
*定义影片剪辑boxContent中的按钮okbtn上显
示的文本*
le(
*为影片剪辑boxContent中的按钮okbtn应用文
本样式* (9)编写影片剪辑boxContent中按钮o
kbtn的鼠标单击事件函数buttoncl
ick1()。如
下所示:
function
buttonclick1(event:MouseEvent):void {
创建名称为buttonclick1的函数
var
a:Number=Number(1.t
ext);
*将影片剪辑boxConten
t中的输入文本框nu
mTxt1中的内容转换为数字类型并赋值给变量a*
var
b:Number=Number(2.t
ext);
*将影片剪辑boxConten
t中的输入文本框nu
mTxt2中的内容转换为数字类型并赋值给变量b*
var
c:Number=Number(3.t
ext);
*将影片剪辑boxConten
t中的输入文本框nu
mTxt3中的内容转换为数字类型并赋值给变量c*
var
d:Number=c-b;
求变量c和b的差并赋给变量d
if (a==d) {
判断变量a和d的值是否相等
dPlay(2);
*影片剪辑boxContent跳转到第2帧,然后
播放*
=重新开始
*定义影片剪辑boxContent中的按钮backb
tn上显示的文本*
le(
nstyle);
*为影片剪辑boxContent中的按钮backbtn
应用文本样式*
}
else {
dPlay(3);
*影片剪辑boxContent跳转到第3帧,然后
播放*
=重新开始
*定义影片剪辑boxContent中的按钮backb
tn上显示的文本*
le(
nstyle);
*为影片剪辑boxContent中的按钮backbtn
应用文本样式*
}
}
(10)编写影片剪辑boxContent中按钮
backbtn的鼠标单击事
件函数buttonclick2()。
如下所示:
function
buttonclick2(event:MouseEvent):void {
创建名称为buttonclick2的函数
dPlay(1);
*影片剪辑boxContent跳转到第1帧,然后播
放*
le(
*为影片剪辑boxContent中的输入文本框nu
mTxt1应用文本样式*
le(
l);
*为影片剪辑boxContent中的输入文本框nu
mTxt2应用文本样式*
le(
l);
*为影片剪辑boxContent中的输入文本框nu
mTxt3应用文本样式*
=算算看
*定义影片剪辑boxContent中的按钮上显示
的文本*
le(
e);
*为影片剪辑boxContent中的按钮okbtn应用
文本样式*
=
*定义影片剪辑boxContent中的输入文本框
中的内容为空*
=String((M
()*5));
*获取0到5之间的随机整数并赋给影片剪辑
boxContent中的输入文本框numTxt2*
=String((M
()*5+5));
*获取5到10之间的随机整数并赋给影片剪
辑boxContent中的输入文本框numTxt3*
}
(11)定义监听影片播放事件,并编写
影片播放事件函数che
ckframe()。代码如下:
addEventListener(_FRAME,checkfr
ame);
*对影片添加事件监听,当影片播放时,执行c
heckframe()函数*
function checkframe(event:Event):void {
创建名称为checkframe的函数
if (tFrame==1) {
*如果播放头在影片剪辑boxConten的时间轴
中的第1帧时*
if
(!={
*如果影片剪辑boxContent中的输入文本
框numTxt1的内容为空*
ntListener(Mous
,buttonclick1);
*对影片剪
辑boxContent中的按钮okbtn
添加事件监听,当其被单击时,执行buttonclic
k1()
函数*
}
} else {
否则
ntListener(Mouse
,buttonclick2);
*对影片剪辑boxContent中的按钮backbtn
添加事件监听,当其被单击时
,执行buttonclick2()
函数*
}
}