Flash教程:通过实例学习AS(一)——火焰的制作

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

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

【 tulaoshi.com - Flash 】

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

先看看效果:

[next]

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

   既然是学习AS,那么相关知识还是要讲解一下的。下面我们就介绍一下,本例中我们将要用到的AS知识点。我力求用大家能嚼之有味的语言来介绍,希望大家能接受。为了满足所有的朋友,我把阅读本文的朋友看着是从未接触过AS的。

首先,我们来认识一下:变量

几乎所有的编程语言都会用到变这个名词。变量就是用来临时储存数据的。有点象初中学的代数,(不一定恰当哈),比如初中代数中有这样一道题:

  a = 3, b = 5,求:a+b

那我们得出:a+b = 8

在编程中,我们就把a b称为变量,在a、b中分别储存了数字3和5,那么为什么叫变量呢?我们来看看:

a = 3;这个时候在变量a中储存的数字是3

a = 5;这个时候在变a中储存的数字就变成了5,数字变了。

我们这样来理解变量,在我们的电脑内存中,划分了很多个房间,我们给一些房间取上名字,用来存放数据,比如我给一个房间取名叫:a,那么这个a就被称为变量。那么怎样给这样的房间取名字呢?很简单,用var这个词。如:

var a   这样我们就声明了一个叫a的变量,也就是建了一个叫a的房间

a = 3
现在3赋值给了a,3住进了a房间

a = 5
现在5来了,占了房间,一脚把3给踢了出去。

在命名变量的同时就可以给它赋值,所以上面的语句又写成:

 var a = 3;

到现在为止,我想大家已经清楚变量的概念了。有了变量,我们就可以做一些计算:


a = 3;

a = a + 3; 那么现在a中的数值是6;

另一个计算方法:


a += 3; 它的意思就是:a = a + 3,即用本身去加上右边的数值。

 a++ ;它的意思是:a += 1,也就是:a = a +1,这个叫递加,即每次增加1

我们说变量是用来存放数据的,数据和数值是两个不同的概念,在编程中数据除数值外还有很多不同的数据类型,比如:字符、日期等。

我们可以在我们的房间上挂上数据类型,来限制房间中只能住哪一类数据。做法是在变量名后加上冒号,注明数据类型,比如:

var a:Number 这样a中就只能放数值了,放123456可以,放“清风是个大美女”就不行,也就是说女生宿舍,男生莫入。

var b:String 这时就只能放字符了,放进去的数值都会被认作是字符,比如:

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

var a:String = “3”;

var b:String =“ 5”;

var c = a+b;
这时c中储存的数据是:“35”

下面我们来认识另一个重要的概念:对象

在现在的编程语言中,大多是面向对象的编程,AS到3.0时,已成为标准的面向对象的编程语言了。所以对象的概念是十分重要的。那么对象是个什么玩眼呢?

对象就是一些具体的东西,你的明白?说实话,就这句话我也不明白。比如舞台上的元件,图形,文本框等等,我们都把它叫做对象。又比如你家里的各种物件都可以叫一个对象,电视、桌椅、你及你家那只可爱的小狗狗“娜娜”都可以叫做对象。然后我们把这些对象分个类,比如电器类,包括电视机民,电冰箱,电脑等,它们都有一些共同的特点,这样我们应又认识了一个概念叫做类。类就是一些对象共有性质的概括。不管了,反正类就是同一类型的意思。你可能会提到另一个概念,实例,一些具体的东西叫对象,那么实例又是什么呢?实例是一个具体的对象。糊了,这下总算给弄糊了。不着急,我们慢慢来理一下这层关系,类是指一类相同特性的东西,比如电器类,它下面有很多对象(当然也可以有子类),比如电视机对,洗衣机对等,对象只是一个概念,实例才是具体的东西,比如客厅中的那台电视机就是电视机对象的一个实例。所以我们放在场景中的的任何一件东西:mc,按钮,图形等都是一个具体的实例。对象都有它们的一些属性和方法,这样我们主要介绍属性。比如一个mc对象就有它自已的属性如:大小、位置(x、y坐标)、颜色等。现在我们就介绍几个本例要用到的mc的几个属性:

_x,_y属性,它表示mc的注册点在舞台是的从标,从而确定了mc在舞台上的位置。要注意的是,在AS3中属性的前面已没有下划线了。属性的表示方法:

对象名称._属性名称  (在AS3中是:对象名称.属性名称)

比如我们在场景中有一mc,我们在属性面板中为它指定实例名称为:mc1_mc,那么我们就可以在AS中为它指定属性质了:

mc1_mc._x = 200;

mc1_mc._y = 300;

那么元件mc1_mc被放在了舞台200,300象素处。

_visible属性:它可以设置对象是否可见,如果设为false,就不可见,设为:true就可见,

比如:我们要让mc1_mc不可见就可用上这样一句:

 mc1_mc._visible = false;
这样运行时我们就看不见它了。我们想看见它了,怎么办呢:

用这句: 

   mc1_mc._visible = true; 就行了。


_alpha属性:设置对象的透明度,0-100,例:

  mc1_mc._alpha = 80;

下面介绍一个语句:if条件语句

if英文意思是如果,这个语句的意思就是如果怎么样那就怎么样,它的格式是:

 if (条件表达式) {

   要执行的语句

}

如果园括号中的条件成立的话,那么就执行大括号中的语句,举个例子:

如果你不好好做练习,那么就拉出去打PP,就这该样写:

  if(你没有好好做练习){

      拉出去打PP;

}

duplicateMovieClip( )

这是在场景中复制mc的语句,它可以复制在舞台上的mc,这个语句经常在下雨、下雪、烟花等特效中用到。格式为:

  duplicateMovieClip(“复制的mc实例的名称”,”新实例的名称”,深度”)

深度可以理解为跟层差不多的意思,上面的(数字大的)将盖住下面的。

比如,我们现在舞台上的一个mc,在属性面板中,它的实例名为;mc1_mc,现在我们要复制一个,可用这样的语句:

   duplicateMovieClip(“mc1_mc”,”mc2_mc”,1)

运行时我们发现我们只看到了一个mc,为什么没有复制呢?不是没有复制,而是两个mc完全重合,我们只看到了一个而已。于是我们用上面提到的语句把其中一个移一下,就行了:

  mc2_mc._x = mc1_mc_x + 100;这样新复制出来的mc向右移动了100个像素,我们就看见两个mc了。

Math.random()

Math是一个顶级类,在它里面主要包含了一些数学运算的函数:如三角函数sin cos等。

random()就是Math类中的一个,它的作用是产生一个0-1的随机数。这个语句经常在下雨、下雪、烟花等特效中用到。

好了,敲了半天,总算敲完了,同志们也都厌烦了吧?好了,不学了,我们来做练习。[next]

快打开flash吧,说明本例在as2中实现,照顾多数人,所以如果你用的是cs3的话,在新建文档时,请选择建立“ActionScript 2.0”文档。

先来做柴禾,插入新图形元件,名字随你爱好,叫柴禾也行。用矩形工具画一根柴禾,禁止边框,用线性填充:8A5B5B
FFCC99
FFCC99
FEAE5F,然后再复制两根,将三根柴禾摆成品字形,如图

下面做火焰:新建一图形元件hx,用椭园工具画一园形,宽为51, 高为:51,禁用边框,填充色:放射状,左,右均为EDD823,左色标透明度为100%,右色标透明度为0%。


 新建一影片剪辑元件hm,将图形元件hx拖入,在第8帧,插入关键帧,回到第一帧,用变形工具将园调到最小,几乎看不见。在第8帧将园形调成宽60,高85,在第1帧到第8帧之间创建补间动画。在第9帧插入关键帧,第25帧插入关键帧,并在第25帧将园形的填充色改为:放射状,左右均为:E72510,左色标透明度为 100%,右色标透明度为0%,将圆形往上移一段距离,(火焰的高度),然后用变形工具将园调到最小,直到看不见。在第9帧到25帧之间创建形状补间。注意:第9帧和第25 帧一定要打散。

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


再建一影片剪辑,取名火焰,看到了吧,火焰来了。将hm拖入,并在属性面板中为它指定实例名称为:hy_mc,接下来写代码了。


第1帧代码: var i = 1; // As的代码,每一句后面必须跟个分号。

hy_mc._visible = false;

var m = hy_mc._x;
//

第2帧代码:if ( i<50 ) {

duplicateMovieClip("hy_mc", "hy_mc" + i, i);

this["hy_mc" + i]._alpha = i*10;

//这里this代表主场景的意思,代码写在什么地方this就代表什么,this["hy_mc" + i]就是主场景中的hy_mc+i原件(刚复制的)。

this["hy_mc" + i]._x = Math.random()*60 + m;

i++;

}

第3帧代码:gotoAndPlay(2); //回到第2帧形成循环。


好了,现在回到主场景,在第1层将柴禾拖入放好,在第2层将火焰拖入放好,ok!


大家把练习做好后,在后面跟帖吧,这样我也才有动力写之二,之三,之若干啊。

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

来源:https://www.tulaoshi.com/n/20160129/1486510.html

延伸阅读
标签: Web开发
本教程一共三个例子:1、设置背景颜色;2、设置文本的背景颜色;3、将图像设置为背景。 参考网页教学网关于CSS背景的理论知识:CSS教程(1):学习CSS背景相关知识 1、设置背景颜色 本例演示如何为元素设置背景颜色。 html head style type="text/css" body {background-color: yellow} h1 {background-color: #00ff00} h2 {backg...
标签: 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()...
标签: flash教程
    我们先来看看实例的效果,场景中有六个小球,分别代表人的头、腰、手、脚,如果用鼠标拖动小人身体的任何一部分,身体的部分都会做出相应的动作,整个身体各部分之间位置的改变是很协调的。 实现其实是很简单的,下面我们一步一步来制作这个实例效果。 1、打开,新建一个场景,按“Ctr...

经验教程

843

收藏

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