Google
      
发新话题
打印

如果你对AS一点都不了解,请进来,

如果你对AS一点都不了解,请进来,

在下在这里发此贴,目的在于帮助更多的朋友尽早的进入AS的学习,本人水平很差,错误不少,请各位大侠指教,批评,文档纯属于自己编写,主要是写写自己入门的感受同时也相信,你如果对AS太不了解,认真看看,肯定有用。如有疑问,尽全力回答
初识AS AS是Action Script的缩写,它是一种编程语言,首先我们不要对它有畏惧感,我们先来学习一个控制住影片循环自动播放。以此为我们正式进入AS做个序。 做一个很简单的移动动画,比如,做一个圆移动的MC(MovieClip)(影片剪辑的意思)选中要使动画停在的这一桢,(注意啦,选中的这一桢必须要是关键桢才行,)打开动作面板,在空白文档中输入stop();于是在这一桢上立即产生一个α,于是,你成功了。按Ctrl+Enter试试,哦!原来是如此的简单,但是,不要高兴,我们学一样,要善于去思考,多从你能想到实验的去实验一下于是我们可以这样想:AS,我们在这一桢设置了AS,AS就好象是执行命令的一个警察,他站在那里,只要你走到他面前,他就会忠实的执行他应当执行的任务,这个简单的AS的任务是什么呢?就是“停”,当还没有走到他面前时为什么不会命令停住呢?因为还没有走到他的地盘上,他没有这个权利,书上常这样说,一触发它,它就执行了, 现在我们好好的来温习一下今天的内容,进行以下练习 1、 在场景中做几个图片移动的动画,是那种移动了一幅,第二幅,三幅…跟着来的那种,试着在前面,中间。后面的不同位置的关键桢上设置stop(); 2、 同样做MC也是第一幅,第二幅…….同样照练习1中设置stop();然后将MC拖入场景中哦!差点忘了,为什么stop 后面还有一个();没有可以吗?答案是否定的,为什么?说“停”那么停在哪里呢?用括号来表示,括号里面输入数字,数字是几,就停在几桢,没有数字,就停在自己本桢,这里你不必去实验了,实验了也不行,后面我们要说,总之,stop(); 包含了两层含义一、停 二、具体停在那里。没有括号,它就不知道自己停在那里,那么它就干脆不执行命令,必须要有()就好象是我们在有是通用两位数记数一样,2就要写成02,因为计算机是很规范的,好了,最后,如果你对AS面板不熟的话,去好好熟悉一下,这个我就不讲了,然后进入我们的正式学习。
二、三种AS 我说的三种AS是什么意思呢,是指一、写在桢上的AS二、写在MC上的AS 三、写在按纽上的AS,先学写在按纽上的AS (一)初步接触比如有这么一段代码,(又叫脚本,又叫程序) on(press){ gotoAndPlay(1) } 什么意思?on是按纽事件,press是按下的意思。GotoAndPlay是转到并播放的意思,连起来,是按下鼠标,就转到并播放第一桢听懂了意思,不会做,又等于成为理论,现在我们用以上源文件做一个按纽,做一个图片移动的简单动画新建按纽符号,将符号拖入场景放在新的一层点选按纽,打开动作面板,在面板上输入以上语句按Ctrl+Enter试你又成功了,好!我们停下来再稍微理论一下写在按纽上的AS的格式是on(事件){要执行的代码}我们必须按照这个格式写,因为电脑在这方面就不如人那么灵活了,一句话有多种方式表达,而电脑就要按照它的要求。现在你也知道了括号中的数字的作用了吧,为什么序言中的stop后面的括号中加数字是错误的呢,因为没有转到并播放的命令,那么只有在本桢停而不能在其他桢停,而现在是转到并播放,具体转到那里播放,你就可以随便设定了,记住:写在按纽上的AS的格式是on(事件){要执行的代码} 现在我们进行以下练习来进行巩固 1、 在场景中做几个图片运动完一个又来一个的动画,试一试,做几个按纽,分别造成点击后在不同的桢播放 2、 把按纽做在最后一桢,使你原来的那种循环不停的MTV能点击后才重放
(二)进一步研究现在我们来实现这样的效果,几个按钮,点击某个,就播放某个所连接的MC,如同象浏览网页一样的,方法是多种多样的,现在我们来学习一种,其余的就要靠朋友们慢慢去领会了, 1、 做三个MC,每个MC的第一桢都添stop() 2、 做三个按纽符号后回到场景,将三个MC分别放在第一层的一、二、三桢,给每一桢加stop(),再给每个MC取实例名,(如何取?点选MC,打开属性面板,在影片剪辑下的框中输入就是了,输入什么符号,随便,比如分别是a、 b 、 c、 3、 将三个按纽拖入场景,放在第二层的第一桢 4、 选中第一个按纽,打开AS面板,输入 on(press,release){ gotoAndStop(1) _root.a.play(); } 同样给第二个按纽添 on(press,release){ gotoAndStop(2) _root.b.play(); } 同样给第三个按纽添 on(press,release){ gotoAndStop(3) _root.c.play(); } 5、 按shint+enter试试结合上面的例子。我们来说说相关的语法,首先,我们进一步巩固写在AS上的脚本格式on(事件){要执行的代码} 其次,三个时间轴上的MC都写上了stop(),这个停止命令,是告诉不能自动播放,因为每一桢上放的不是一桢的内容,它包含了很多桢的内容,放的是一个影片剪辑,要播放哪个MC要得到指示后才播放,否则不加stop()那么就与三张图片在闪动没有两样,再次,设置了每个MC的事例名,为什么要设置事例名呢?这里还要说说有关路径的问题,这个语法要执行的命令是 { gotoAndStop(3) _root.c.play(); } 跳转并停止在第三桢,播放根时间轴上的影片a,root表示根时间轴,_root.c.说明了影片c 的绝对路径,关于路径是什么意思?路径就是通过什么道路找到目标的意思,表达方式是用操作符号 “.”来表示,比如天安门的路径是地球.亚洲.中国.北京.天安门,这样进行一级比一级更小的搜索到天安门,同样“跟时间轴.C影片剪辑,”只是这个更简单而已,学会了简单的,才会掌握复杂的,好了,关于路径还有相对路径,限于自己的水平今后再说 现在我们应当知道为什么要给MC取事例名了吧,没有事例名,就找不到播放什么,就无法执行命令, 但也要注意,点操作符表示的不光是路径,它还表示调用一个对象的属性和方法,比如 这里的stop()就是方法,播放的意思 。好了,你想要的简单的交互现在就能实现了今后我们还将进一步的讨论
(三)再进一步研究我想,任何质变都是量变积累所爆发的结果,记得闪吧里的“红烧带鱼”版主曾给我说过这么一句话,“也许你要做很多遍,也许要一年,积累,积累再积累,当一定的时候,你就“爆发”了”。是的,如果看了这些贴,有用,不妨多反复,进行一些小的变化的实验,这里我再说说关于按纽事件 on(事件){要执行的代码} 只对按纽有效,这样的处理句柄还有on(releaseOutside){ } on(rollover){ } on(rollout){ } on(dragOver)等等,这些可以去查查资料,现在我们可以实验一下,这种语句对按纽有效,对MC无效, 1、 做一个按纽符号 2、 拖入场景,在40桢插入关键桢,点第一桢,创建补间动画于是就完成了一个活动的按纽的制作选中按纽,添加 on(rollOver){ //当鼠标进入按纽 _root.stop(); //停止 } on(rollOut){ //当鼠标离开按纽 _root.play(); //播放 } 于是我们就做了一个类似有些电影网页的宣传影片的那种方式,让滚动的图片停下来为了更加深入的掌握按纽事件对按纽才有效,最好实验一下,印象深刻,而且有些实验,能触发自己其他方面的感受,做个什么实验呢,做一个MC拖入场景,设置同样的命令,看结果怎样望高手指正啊!同时也要后来者批判接受啊!
(最后)办个总结,今后就讨论MC事件了以上我们讨论了(1)最简单的在桢上加stop命令,(2)如何实现点击按纽就播放根据AS命令的桢。和MC,(3)也涉及了绝对路径的问题,(_root)补充一下,如果我们在MC的编辑环境中对某一桢用上这样的语句:gotoAndPlay(2) 那么当时间轴走到这里的时候,就要听从命令,转到并播放第二桢,如果在桢上写gotoAndPlay("scene1"1)那么就转到第一场景第一桢开始播放,当然,第一场景的名字要为 secne1 才行,好了,不罗嗦了,今天我们要做一个包括上面的所有知识的AS命令,我们要做什么,还是先看看这个文件再说
看清楚了吧!这个是MC嵌套MC,还要嵌套MC,由大到小是:(1)大球运动同时摆动同时小球跳动,(2)大球带着小球摆动,同时小球跳动,(3)小球跳动 ,先说清楚怎么做的,再来分析道理,呵呵,请高手不要笑话呵,我们是等同于小学生在互相帮助 1、制作两个图形,一个大圆一个小圆, 2、制作一个MC,把大圆、小圆拖入场景分别放在一、二层,做成小圆在大圆上跳动,在第一桢加stop() 在最后桢加gotoAndPlay(2),为什么要加,目的是为了避免在场景中自动播放(我们要让它听从命令播放)在最后一桢加gotoAndPlay(2)是为了使它又能受到指令后持续播放 3、 做MC1,将刚才做的MC拖入MC1编辑环境,为这个MC命事例名为mc1,把mc1做成左右摆动的动画,同样照第二步加AS命令,道理是一样的 4、 做MC2,把MC1拖进MC2编辑环境,为MC1取事例名为mc2,把MC2做成按照引导线运动,照前面步骤添加AS命令 5、 做MC3,将MC2拖入场景,为它命事例名为mc3 6、 做三个按纽,回到场景,将按纽拖入场景放在第二层,放好位置 7、 为按纽添加AS为第一个按纽添加 on (press, release) { gotoAndPlay(1); _root.mc3.mc2.mc1.play(); } 为第二个按纽添加 on (press, release) { gotoAndPlay(1); _root.mc3.mc2.play(); } 为第三个按纽添加 on (press, release) { gotoAndPlay(1); _root.mc3.play(); } 这里就着说一下路径,以第一个按纽的AS为例,意思是点击释放,释放的是什么呢,gotoAndPlay(1),哦,转到并停止在第一桢,当然只有在第一桢了,因为只有一桢,但第一桢里面有三个MC啊,究竟播放什么呢?是全部一起播放呢,还是只播放其中的某一个呢?因为我们在做的时候每个MC都必须要得到指令才允许播放啊,好!下面又来 _root.mc3.mc2.mc1.play();对!_root出现了,说明应该要去找播放什么了,哦!是播放MC3里的MC2里的MC1好,这就如同是MC3(中国)MC2(北京)MC1(天安门),看来能顺利的找到,找到了,play()(执行命令-——播放!) 好了,我写了这么多,等于我把自己的知识系统了一下,感谢朋友们的支持!谢谢!
发新话题
查看积分策略说明

快速回复主题

选项

[完成后可按 Ctrl+Enter 发布]  预览帖子  恢复数据  清空内容