分享

通过实例学习AS(三)

 whwzjjs 2012-09-30
通过实例学习AS(三)
先看效果,看看你的身材如何:
体质测试.swf (141.39 KB, 下载次数: 313)
这次我们通过一个体质测试的小东东,来学习AS的文本框的相关内容,同时我们还会用到,组件,对if条件语句进一步地了解。首先我们来看看文本框。
使用文本框
在我们实际制作flash的时候,经常都会用到文字。在flash中的文字都是通过文框来实现的。当我们在工具栏中用“T”工具在场景中拖出一个框时,我们就建 立了一个文框。然后,我们点开属性面板,可以看到这里有三个文本框的选项,分别是:静态文本框、动态文本框和输入文本框。静态文本框一般用来用为标签一样的东西,也就是说在场景中显示一些文字,这些文字在画好文本框后,就可以马上输入,而且在以后运行swf文件时,它不会发生变化。动态文本框,也是显示一些文字,但这些文字在以后会发生变化,我们可以在AS中,让文本框中的字变成其它内容。因为要在AS中用到它,所以,在属性面板中为它指定名称就是必须的了。再有一个就是输入文本框,这个文本框是在运行swf文件时,用户可在这个文本框中输入文字。
AS中使用组件
组件就是AS中已经包装好了的一些东西,我们拿来就用,只须设置一些属性就行了。本例介绍两个组件:
comboBox组件,这是一个下拉列表组件,如本例中的性别一栏,就是一个下拉列表。通过单击“窗口”-“组件”,在打开的组件对话框中,展开“User Inteface”项,找到“comboBox“组件,将它拖到桌面上,就创建了这个组件。然后,打开属性面板,点击”参数“,就可以为这个组件设置参数了,点击”labels那一栏,再点这栏右边的放大镜,打开一个对话框,就可认为下拉列表输入内容了,即要显示在下拉列表中的内容。看到左上角的+号了吗?点一下,就可以增加一行,比如本例中我先输入一个“男”字,然后,点一下那个+号,新增加了一行,我们再在这一行中输一个“女”字。这样,参数就设好了。不要忘了,在属性在属性面板中为这个下拉列表指定一个名称,本例中指定为“xb_comb”.如图:
xllb.JPG 
TextInput组件,实际上这就是一个文本框,它有点象输入文本框,我们用它主要是想给大家多介绍一个组件而已。所以,你在制作时,完全可以用输入文体框,而不用本组件。从组件对话框中,将TextInput组件拖到场景中,然后在属性面板中为它指定名称即可。
按钮的应用
  我们需要做两个按钮。按钮为什么要自已做呢,你上面那两个按钮做得并不好看啊,公用库里多得很。是的,是的,你是正确的。但我们的目的是学习AS啊,有时我们也想将图片做成按钮,也想制作一些有个性的按钮啊。常常有人会问道,为什么我作的按钮,没有用呢,点了它没反应。所以我认为还是应该介绍一下,基于为种考虑,我采用自已做按钮的方式。制作按钮很简单,以上面的“确定”按钮为例,点击“插入”-“新建元件”,在弹出的对话框中选择按纽,填上名字,确定。这时就进入了,按钮编辑窗口,在上面画一个矩形,然后插入一层,在矩形上输入文字,如“确定”。现注意一下,时间轴,共有4帧,分别是:弹起,指针经过,按下、点击,弹起就是平常看到的样子,这里不用管它;指针经过,是鼠标移到按钮上时,这时一般设为高亮显示。在这一帧为按钮选一个比原色稍浅一点的填充色就行了。按下,是当鼠标点击的时候,按钮的样子。一般是凹下去的感觉。我的做法是在这一帧将按钮的边框线条加粗。最后一帧是点击,它是指鼠标的点击范围,就是说在按钮上指定一定的区域,鼠标只有在这个区域内点击才有效。所以这一帧是必须插入关键帧的。需要注意的是,纯文字按钮如:playstopreplay等,在这一帧,应该画一个矩形,为按钮指定区域,不然,运行时,只有当用户当到笔画上时才起作用。一般图形的话就在这一帧插入关键帧就行了,睛整个图形范围都可以点击。自已做的按钮不起作用,问题多半出在这一帧上。
进一步认识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) {

_root.mc.play();

}

好了,现在开始做练习:
首先准备素材,我们需要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 = "";
}
原文件: 体质测试.rar (227.17 KB, 下载次数: 39)


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多