图老师电脑网络栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享Flash教程:通过实例学习AS(一)——火焰的制作 (1)的教程,热爱PS的朋友们快点看过来吧!
【 tulaoshi.com - FLASH 】
本文由 sanbos 原创,转载请保留此信息!
先看看效果:
[1] 200806/12926_2.html'>[2] 200806/12926_3.html'>[3] 200806/12926_2.html'>下一页
很多朋友都说了,想学AS,但又觉得不太好学,的确,系统地学习AS是要有耐心,恒心才行。特别是那些专业的名词、术语诸如:包、类、对象……等,苦涩难懂,又嚼之无味,所以我想我们就不系统地学习,我们来做练习,从而来学习AS知识,大家一起走进AS世界。今天我们就来做一个火焰练习。
既然是学习AS,那么相关知识还是要讲解一下的。下面我们就介绍一下,本例中我们将要用到的AS知识点。我力求用大家能嚼之有味的语言来介绍,希望大家能接受。为了满足所有的朋友,我把阅读本文的朋友看着是从未接触过AS的。
首先,我们来认识一下:变量
几乎所有的编程www.Tulaoshi.com语言都会用到变这个名词。变量就是用来临时储存数据的。有点象初中学的代数,(不一定恰当哈),比如初中代数中有这样一道题:
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 这时就只能放字符了,放进去的数值都会被认作是字符,比如:
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的随机数。这个语句经常在下雨、下雪、烟花等特效中用到。
好了,敲了半天,总算敲完了,同志们也都厌烦了吧?好了,不学了,我们来做练习。
200806/12926.html'>上一页 200806/12926.html'>[1] [2] 200806/12926_3.html'>[3] 200806/12926_3.html'>下一页
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)
快打开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 帧一定要打散。
再建一影片剪辑,取名火焰,看到了吧,火焰来了。将hm拖入,并在属性面板中为它指定实例名称为:hy_mc,接下来写代码了。
第1帧代码: var i = 1; // As的代码,每一句后面必须跟个分号。
hy_mc._visible = false;
var m = hy_mc._x;
//
第2帧代码:if ( i50 ) {
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./viewthread.php?tid=163643
200806/12926_2.html'>上一页 200806/12926.html'>[1] 200806/12926_2.html'>[2] [3]
来源:http://www.tulaoshi.com/n/20160318/1895326.html
看过《Flash教程:通过实例学习AS(一)——火焰的制作 (1)》的人还看了以下文章 更多>>