收藏本站 | 站点地图 | 繁體中文
沭阳乐园
您现在的位置: 沐阳乐园 >> 文章中心 >> 网络教程 >> 动画基础 >> 正文
[组图]ActionScript循序渐进1-3         
ActionScript循序渐进1-3
作者:佚名 文章来源:zt 点击数:1149 更新时间:2010-12-19 16:55:35

一)

前言:首先说说自己想说的话。

凡爱好Flash且没有一点编程基础的人,最头痛的莫过于AS了,我也头痛过,至今也是菜鸟一只,也在头痛中。2003年9月买了一本书,《循序渐进FlashMX基础与技巧》宇风多媒体编著。人民邮电出版社。这本书其实不适合初学者。我当初根本看不懂它,真正受益的还是在论坛上。现在想写点东西,仍然参照这本书,因为我只有这本书,参照这本书的体系和一些事例,以坚持初学者的立场,想尽一切办法通俗一些,让看了我写的这些丑文字的朋友能说声:“辛苦了”,就满足了。

一、AS入门

在这里,我们不从AS体系中的分类去学习它,因为从一个根本不知道AS的人来说,还谈不上去分类学习,只有先能做一些之后,才能够进行分类学习。

(一)让自己的动画播放完毕能够停下来。

选中最后一桢,打开动作面板,在动作面板中输入stop(),于是播放完毕就停下来了。参看下面的源文件

点击浏览该文件

(二)上面的小动画只能播放一遍,现在我们来做一个按纽,把这个按纽放在最后一桢,点击它,从第一桢重新播放。

1、画一个矩形,选中它,右击,选择转换为元件,见下图

2、选择按纽,确定,见下图

3、选中按纽,打开动作面板,输入

on (press) {

gotoAndPlay(1);

}

见下图

点击浏览该文件

(三)做一个MC,在MC上写AS,控制这个MC运动

MC是MovieClip(影片剪辑)的简称,它是制作动画中最重要的一种符号。下面按照上面图示的方法,在舞台上画一个矩形,选中它,右击,转化为元件,选择影片剪辑,确定。然后再选中该MC,打开动作面板,输入

on (press) {

this._x = 200;

}

于是,一点这个MC,这个MC的X坐标就等于200了,这里的this在英语中是这个的意思,在AS中要理解为当前对象,今后我要详细的说的,这里暂且这样理解。参看这个播放文件。

点击浏览该文件

小结:通过以上的例子,我们已经知道了AS应当写在什么地方了。

1、写在桢上,此时桢上要出现一个符号a,意思就是说,这一桢上有AS的意思。

2、写在按纽上,但放按纽的桢上并不显示符号a,一个按纽上是一定有AS的,否则这个按纽就失去了意义。

3、写在MC上,但放MC的桢上也不显示符号 a,只有选中这个MC,打开动作面板,才可以看到AS。

基于上面所述,就可以去看别人的AS放在什么地方了。同时,写在按纽上的也可以写到MC或者桢上,写在MC上的也可以写在桢上的。这时,就需要给按纽和MC取事例名了,如何给MC取事例名,参看下面的步骤:(看图

(1)选中MC,打开属性面板,

(2)在下面图中的位置输入一个名字,由字母或者数字或者下划线组成,但不能只由数字组成,至少要有字母。

为什么要给符号取事例名呢?因为我们要控制它,不知道它的名字,就无法执行,就好比是你是一个老师,你在讲台上要请一个同学站起来,你不说出同学的名字,叫谁站起来呢?

好,现在我们上面例子中的按纽中的AS写在桢上去

选中按纽,给它取一个事例名,bbt,然后选中按纽所在的桢,打开动作面板。输入:

_root.bbt.onPress = function() {

gotoAndPlay(1);

};

解释一下:_root是根时间轴,function是函数命令,由于这里才开头入门,所以没办法讲得清楚它,这恐怕是AS难写的原因吧。暂且不追究它的含义,后面来。

二)

学会按钮事件和MC事件的处理方法

按纽的脚本包括在一个on事件的处理句柄之中。

MC的脚本包括在一个onClipEvent事件处理句柄或者on事件的处理句柄之中。

举个例子来说明上面两句话的意思(为了使文章不是空洞的说,因此尽量做出事例来)

先看看以下两个文件

点击浏览该文件

点击浏览该文件

on(press){ _root.stop() } 这个可以放到按纽上,也可以放到MC上,如果放到按纽上,点击按纽就执行,放到MC上,点击MC就执行 再举一个例子: onClipEvent (enterFrame) { this._x += 2; }

这个只能放在MC中,放在其他任何地方都是错误。

所谓句柄就是指上面的on和onClipEvent它们都是放在前面,就好象菜刀的刀把一样,所以说叫句柄,就是这个道理。而句柄后面的括号中的是动作,press是按下鼠标的动作,enterFrame是当MC被载入后就不断执行的动作,如果时间轴上只有一桢,它也将不断的读取这一桢,如果你设置的是12桢/秒,那么就会每1/12秒就执行一次{ }中的内容,就是不断的让这个当前的MC的X坐标值加2

所谓事件就是(1)指鼠标动作,因为鼠标有经过,有按下,有按下离开等等(2)指键盘动作,比如按下键盘上的某一个键,(3)指一个MC的载入,比如上面的enterFrame就是指的影片载入之后的动作,如果问:是怎么载入的,答:swf文件一打开就自动载入了。

于是由 句柄(动作){语句} 就构成了语句流程,这就是我们所说的语法规则。

如果要知道有哪些动作,可以参看资料,也可以参看FLASH帮助,参看帮助可以这样操作,选中动作面板中的on或者onClipEvent,点右键,选择帮助,这时就会显示所有的动作。我就不一一去说了,现在要说的是,一个on或者onClipEvent句柄中可以有很多你需要执行的语句,也可以嵌入其他语句流。现在分别说明

(1)多个语句一起执行

比如把这段代码写在按纽上

on (press) { mc1._x += 5; mc2._x -= 5; mc3._y += 5; mc4._y -= 5; }  

点击浏览该文件

(2)在句柄中嵌入其他语句

on (press) {

onEnterFrame = function () { mc1._x += 5; mc2._x -= 5; mc3._y += 5; mc4._y -= 5; }; }

这里把我们才讲了的语句嵌入,于是一点按纽之后,就不断的执行了。

点击浏览该文件

onEnterFrame = function ()前面也提到了,这里又出现了,它是MC时间的处理方法,是采用函数的形式来处理的,中括号中的内容是属于函数的主体。这种写法是一种固定的格式。MC事件的这种写法适合于写在桢上,也适合于嵌入在其他语句中,如果把上面的语句写成

on (press) { onClipEvent (enterFrame) { mc1._x += 5; mc2._x -= 5; mc3._y += 5; mc4._y -= 5; }; }  

就是错误的,因为前面已经说了,onClipEvent用于写在MC上的开头,它是句柄

嵌入,还可以嵌入很多,这就给我们看语句带来了难度。  

三)

语句流程

着重说说两种语句流程,if和for

if 是条件判断语句,是如果怎样,就怎样的意思。格式为if(条件){语句}。下面我来实现这个一个程序。舞台上放两个MC,如果MC1的坐标X大于等于300,另一个MC2就向右移动。把这些语句都放到一个按纽的on句柄中,同时句柄中嵌入 onEnterFrame才能够实现不断执行的效果。

on (press) { onEnterFrame = function () { _root.mc1._x += 5; if (_root.mc1._x >= 300) { _root.mc2._x += 5; } }; }

点击浏览该文件

for 是一种循环结构,它适合做重复的事情,现在我们要舞台上的10个MC的X坐标同时向右移动,那么,可以这样写 onEnterFrame = function () { _root.mc1._x += 2; _root.mc2._x += 2; _root.mc3._x += 2; _root.mc4._x += 2; _root.mc5._x += 2; _root.mc6._x += 2; _root.mc7._x += 2; _root.mc8._x += 2; _root.mc9._x += 2; _root.mc10._x += 2; };

这样的语句是不是有点烦,10个不算多,如果100个呢?头都大了。那么for是解决这个问题的救星。现在把中间的10条语句用for语句组织起来。

onEnterFrame = function () { for (i=1; i<11; i++) { _root["mc"+i]._x += 2; } };

点击浏览该文件

结构是for(初始化变量;条件;递增或者递减){你要执行的语句}

i 是一个变量,是一个在这里充当了记数器的作用,这个语句要执行10次,看它执行的过程

首先:i=1;满足i<11这个条件,于是执行,这时执行的是mc1的动作,执行完毕去之后,i++,就是自己加一的意思,于是i=2了。

然后:i=2;满足i<11这个条件,于是执行,这时执行的是mc2的动作,执行完毕去之后,i++,就是自己加一的意思,于是i=3了。…………

最后:i=10;满足i<11这个条件,于是执行,这时执行的是mc10的动作,执行完毕去之后,i++,就是自己加一的意思,于是i=11了。

这时再读取i<11,由于i<11的条件已经不满足了,所以退出循环,执行完毕。

学习for语句最好的办法就是这样先把要执行的分别写,然后把他们用for语句组织起来,等到自己的技术比较成熟的时候,就可以随手写了。

文章录入:晴天    责任编辑:音乐听听 
  • 上一篇文章:
  • 下一篇文章:
  • 【字体: 】 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    广告招商
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    ::发表评论::
     姓 名:
     评 分: 1分 2分 3分 4分 5分
     评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用本网服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 广告招商
    文章 下载 图片 文字广告
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登陆

    备案/许可证编号: 闽ICP备16020960号-1号 域名创建于2016年8月
    版权: 沐阳乐园 All Rights Reserved 站长:张萍 邮箱:381415887@qq.com 联系QQ:联系站长