Flash教程:通过实例学习AS(三)——体质测试

2016-01-29 12:32 9 1 收藏

Flash教程:通过实例学习AS(三)——体质测试,很多朋友都说了,想学AS,但又觉得不太好学,的确,系统地学习AS是要有耐心,恒心才行。特别是那些专业的名词、术语诸如:包、类、对象……等,苦涩难懂,又嚼之无味,所以我想我们就不系统地学习,我们来做练习,从而来学习AS知识,大家一起走进AS世界。

【 tulaoshi.com - Flash 】

本文由中国 sanbos 原创,转载请保留此信息!

先看效果,看看你的身材如何:

请填写下面的内容,然后点击确定,看看你的体质如何。

[next]

这次我们通过一个体质测试的小东东,来学习AS的文本框的相关内容,同时我们还会用到,组件,对if条件语句进一步地了解。首先我们来看看文本框。

使用文本框

在我们实际制作flash的时候,经常都会用到文字。在flash中的文字都是通过文框来实现的。当我们在工具栏中用“T” 工具在场景中拖出一个框时,我们就建 立了一个文框。然后,我们点开属性面板,可以看到这里有三个文本框的选项,分别是:静态文本框、动态文本框和输入文本框。静态文本框一般用来用为标签一样的东西,也就是说在场景中显示一些文字,这些文字在画好文本框后,就可以马上输入,而且在以后运行swf文件时,它不会发生变化。动态文本框,也是显示一些文字,但这些文字在以后会发生变化,我们可以在AS中,让文本框中的字变成其它内容。因为要在AS中用到它,所以,在属性面板中为它指定名称就是必须的了。再有一个就是输入文本框,这个文本框是在运行swf文件时,用户可在这个文本框中输入文字。

在AS中使用组件

组件就是AS中已经包装好了的一些东西,我们拿来就用,只须设置一些属性就行了。本例介绍两个组件:

comboBox组件,这是一个下拉列表组件,如本例中的性别一栏,就是一个下拉列表。通过单击“窗口”-“组件”,在打开的组件对话框中,展开“User Inteface”项,找到“comboBox“组件,将它拖到桌面上,就创建了这个组件。然后,打开属性面板,点击”参数“,就可以为这个组件设置参数了,点击”labels那一栏,再点这栏右边的放大镜,打开一个对话框,就可认为下拉列表输入内容了,即要显示在下拉列表中的内容。看到左上角的+号了吗?点一下,就可以增加一行,比如本例中我先输入一个“男”字,然后,点一下那个+号,新增加了一行,我们再在这一行中输一个“女”字。这样,参数就设好了。不要忘了,在属性在属性面板中为这个下拉列表指定一个名称,本例中指定为“xb_comb”.如图:

TextInput组件,实际上这就是一个文本框,它有点象输入文本框,我们用它主要是想给大家多介绍一个组件而已。所以,你在制作时,完全可以用输入文体框,而不用本组件。从组件对话框中,将TextInput组件拖到场景中,然后在属性面板中为它指定名称即可。

按钮的应用

  我们需要做两个按钮。按钮为什么要自已做呢,你上面那两个按钮做得并不好看啊,公用库里多得很。是的,是的,你是正确的。但我们的目的是学习AS啊,有时我们也想将图片做成按钮,也想制作一些有个性的按钮啊。常常有人会问道,为什么我作的按钮,没有用呢,点了它没反应。所以我认为还是应该介绍一下,基于为种考虑,我采用自已做按钮的方式。制作按钮很简单,以上面的“确定”按钮为例,点击“插入”-“新建元件”,在弹出的对话框中选择按纽,填上名字,确定。这时就进入了,按钮编辑窗口,在上面画一个矩形,然后插入一层,在矩形上输入文字,如“确定”。现注意一下,时间轴,共有4帧,分别是:弹起,指针经过,按下、点击,弹起就是平常看到的样子,这里不用管它;指针经过,是鼠标移到按钮上时,这时一般设为高亮显示。在这一帧为按钮选一个比原色稍浅一点的填充色就行了。按下,是当鼠标点击的时候,按钮的样子。一般是凹下去的感觉。我的做法是在这一帧将按钮的边框线条加粗。最后一帧是点击,它是指鼠标的点击范围,就是说在按钮上指定一定的区域,鼠标只有在这个区域内点击才有效。所以这一帧是必须插入关键帧的。需要注意的是,纯文字按钮如:play、stop、replay等,在这一帧,应该画一个矩形,为按钮指定区域,不然,运行时,只有当用户当到笔画上时才起作用。一般图形的话就在这一帧插入关键帧就行了,睛整个图形范围都可以点击。自已做的按钮不起作用,问题多半出在这一帧上。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

进一步认识if条件语句

if条件语句,我们在前面的练习中,已经介绍过,还记得我们举那个例子吗?如果你不好好做练习,就拖出去打PP,现在有这样的问题,就说我是好好做练习了的,但我却发了违规帧。那应该怎样写呢?用一句 else if (),就行了,如下例:
if (你没有好好做练习) {
 拖出去打PP;
} else if (你发了违规帖) {
  删除你的帖子;
}
那你说我是这种情况,我好好做了练习,又没发违规帖,总之,我是个乖娃娃,又怎样写呢?这样:
if (你没有好好做练习) {
 拖出去打PP;
} else {
   给你加分分;
}
还有一种情况,就说都好好做练习了,都是乖娃娃了,但交上来的作业,有好有差,又怎么办呢?我们可以用if 中嵌套if 的办法不解决,如:
 if (好好做了练习) {
      if (作品水平较高) {
        给你加分分,向你学习;
} else if (作品水平较低) {
    也给你加分分,鼓励并帮助你;
}
}
不知道,我说清楚了没有。

AS对帧的控制

AS对帧的控制我们在做第一个练习的时候就用到了,那时没有介绍这个内容,现补上。
主要介绍中四个命令,不管是主场景还是影片剪辑中的帧都一样。
 play() 帧开始播放。
 stop()   帧停止播放

 gotoAndPlay(n) 括号中的n中一个数字,即帧转到第n帧开始播放。
 gotoAndStop(n) 帧转到第n帧,停止播放。
注意,我们如果把代码加到按钮或mc中,要控制主场中的mc的帧动作的话就应该加上_root.,_root.可以理解为主场影的,比如,我们在按钮中加代码控制在主场景中的一个叫mc的影片剪辑开始播放,就可以这样写:
on(replease) {

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

_root.mc.play();
}[next]

好了,现在开始做练习:

首先准备素材,我们需要8张图,分别是:男、女极瘦、标准、稍胖、肥胖几种身材。你可以自已画,我不会画,所认去网上找了两个人,,然后用变形工具调成各种身材,但同志们是一定不能象我这样懒的,要好好画。
画片准备好以后,新建一影片剪辑元件,在第一层,第二帧插入关键帧。为什么呢?为什么是第2帧呢?因为我们在刚开始时并不让元件上的内容显示出来,所以我们把第1帧给它空起,然后在第1帧的帧动作上加上:stop();这样把元件放到场景中就什么都看不到了。加了吗?加了,我们就继续,回到第二帧,将极瘦的女孩拖进来,居中放好。在图片的右边加上一个静态文本框,输入主:“你也太瘦了点吧,要身才不要命了?还是多吃点营养的东西吧,女孩子太瘦了也不好。”第3帧插入关键帧,拖极瘦男从进来,文字内容是:“男了汉那么瘦怎么行?风都能把你吹倒,还是多吃点营养品补补吧。”第4帧放标准女孩,文字为“美女,身材好哦。恭喜你,你的体重很标准。介绍点经念哦。”第5帧放标准男子,文字为:“帅哥身才不错,挺匀称的。恭喜你的体重很标准。”第6帧放稍胖女子,文字为:“有人叫你胖妹了吗?是应该减肥了,你应该注意你的饮食,多运动,伸伸舌头,伸伸腿,纽纽脖子,纽纽屁股,多做深呼吸……”,在第7帧放入稍胖男子,文字为:“发福了哈,体重超了哦,应该注意饮食了,多运动才好。把你的轿车让我给你保管吧,你走路上班。我也是为你的身体着想啊。” 第8帧放肥胖女子,文字为:“你是太胖了点,开始段练吧,相信还是可能将体重降下去的。”第9帧放肥胖男子,文字为“胖哥逗人爱哦,不过对身体不是太好哈。你也太肥了点,开始减肥吧。”总算输完了,这个影片剪辑就做好了。
按上面的介绍,新建两个按钮,分别为“确定”、“重试”。
现在回到主场景,在舞台的左半边,最上面放一动态文本框取名为syts_txt,然后放上一个下拉列表组件,方法及属性设置参见上面的组件介绍。然后,将两个TextInput组件放到场景中,分别取名为:tz_text, sg_text,在两个文本框的左边,分别放上一个静态文本框,内容为“你的体重(kg)”和“你的身高(厘米)”,然后将两个按纽放到场景中。最后将上面制作的影片剪辑放到场景的右半部。
现在开始写代码:新建一层,命名为action,打开动作面板。写下如下代码:
syts_txt.text = "请填写下面的内容,然后点击确定,看看你的体质如何。"
这是为我们放在左边的动态文本框赋值。我们要动态改变动态文本框的内容,只需要为动态文本框的text属性赋值就行了,就象上句一样。
接下来点中“确定”按钮,打开动作面板,写下如下代码:
on (release) {

var tz:Number
=parseInt( _root.tz_text.text); //parseInt()是将括号中的数据转换为数值类型。

var sg:Number
= parseInt (_root.sg_text.text)/100;//身高输入时是厘米,在计算时要用米作单位,所以除以100

var xb = _root.xb_comb.text;//comboBox的text属性是指下拉列表中当前显示的内容

var bmi = tz/(sg*sg);//主这里算出一个bmi值,根据这个值,来确定影片剪辑播放到那一帧。

if (xb =="男") {

if (bmi < 18.5) {

_root.jg_mc.gotoAndStop (3);//如果性别为男,算出的bmi又小于18.5,影片剪辑就跳到第3帧,并停止。以下相同,就不说明了。

} else if (bmi=18.5 && bmi <=23.9) {

_root.jg_mc.gotoAndStop (5);

} else if (bmi= 24 && bmi <= 26.9){

_root.jg_mc.gotoAndStop (7);

} else if (bmi = 27) {

_root.jg_mc.gotoAndStop (9);
}

}

if (xb == "女") {

if (bmi < 18.5) {

_root.jg_mc.gotoAndStop (2);

} else if(bmi = 18.5 && bmi <= 23.9) {

_root.jg_mc.gotoAndStop(4);

} else if(bmi = 24 && bmi <= 26.9) {


_root.jg_mc.gotoAndStop(6);

} else if(bmi= 27){

_root.jg_mc.gotoAndStop(8);
}

}
}

最后是“重试”按钮,代码为:
on(release) {
_root.jg_mc.gotoAndStop(1);
_root.tz_text.text = "";//清空体重文本框
_root.sg_text.text = "";
}

与本文相关讨论请到这里与作者交流:http://bbs.jcwcn.com/viewthread.php?tid=167259

来源:http://www.tulaoshi.com/n/20160129/1486475.html

延伸阅读
标签: Web开发
本教程介绍:1.如何仅显示一次背景图像,2.如何放置背景图像,3.如何使用%来定位背景图像。 参考网页教学网关于CSS背景的理论知识:。 1、如何仅显示一次背景图像 本例演示如何仅显示一次背景图像。 html head style type="text/css" body { background-image: url('/i/eg_bg_03.gif'); background-repeat: no-repeat } /style /...
标签: Web开发
本教程一共三个例子:1、如何重复背景图像;2、如何在垂直方向重复背景图像;3、如何在水平方向重复背景图像。 参考网页教学网关于CSS背景的理论知识:。 1、如何重复背景图像 本例演示如何重复背景图像。 html head style type="text/css" body { background-image: url(/i/eg_bg_03.gif); background-repeat: repeat } /style...
本例为Flash AS3.0菜鸟学飞系列教程,在上一讲中我们学习了含有多个类的AS3类文件的写法,在这一讲中我们来学习帧循环的运用,希望能给初学Flash AS编程的朋友带来帮助~~ 学习AS3菜鸟起飞吧之帧循环 多帧循环 Flash中的帧在默认情况下是循环执行的,租用gotoAndPlay()函数可以实现简单的帧循环,而实现代码的重复执行。 gotoAndPlay()...
标签: Web开发
网页制作WEB文章简介:盒模型主要定义四个区域:内容(content)、内边框距(padding)、边框(border)和外边距(margin)。 自从1996年CSS1的推出,W3C组织就建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落、列表、标题、图片以及层div。 盒模型主要定义四个区域:内容(con...
标签: FLASH flash教程
用Flash mx 2004制作三角函数图像生成器非常简单,这里我们就用正弦曲线为例子,看一看在flash中如何实现函数图像的。 先来分析一下这个生成器的功能,在程序主界面的输入框中,输入相应的振幅、频率或初相值,然后按下sin按钮,会出现坐标轴和一条动态生成的函数曲线,如果修改了相应的输入值,生成器又会在原来的图像基础上再生成一...

经验教程

704

收藏

90
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部