您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 人人都可flash-flash+as2基础教程
人人皆可flash-flashas2简易教程准备写点东西了。将它称之为教程,实际上是想做标题党,但教程这名字还是挺吓人的。一旦开始写了,岂不是要从头到尾写完,直到吐血而死为止?所以,先声明一下,这个所谓的教程会不定期的更新。有时间我就写,您就先看着,至于最后到底写到什么地步,我现在心里也没底。本教程面向对象:会一些简单的flash,至少会用关键桢做一些简单的吓不到人的动画。要是曾经用gotoAndPlay做过一点简单的交互,那当然最好了。至少你得知道movieclip(影片剪辑)是啥,鬼都知道,as2就是玩movieclip的。如果连这个概念都搞不清楚的,请先去学学怎么用flash做做动画。至少你得知道桢频是啥,要不然你的动画怎么动起来?要不然onEnterFrame(不知道这个词什么意思的,以后会介绍,现在可以华丽地略过不管)估计是讲不清楚了。如果以上这两点你都已经点头了,OK,面试通过,现在咱们可以挽袖子干了。所需软件:flash8不用去赶流行,着急下cs3、cs4,别忘了咱们现在探讨的是FLASHAS2.0,有FLASH8足矣。第三个问题:到底要不要学as2,直接学as3不是更好吗?这个问题我觉得不好回答。如果你现在真的一片空白,在这之前压根就没用过flash,那好,一张白纸好画最美的图画,没有思维定势,as2、as3都无所谓,但是as2可能更易上手一些。当然,一开始咬咬牙,直接as3了,也没什么大不了,一步到位了,从此你就跨上了flash未来的康庄大道。如果你已经懂得一些flash,并且多少做过一些动画。但是随着flash程序的大发展,你觉得自己用关键桢做的那两把刷子快要跟不上时代了,那我觉得,学学as2挺合适,毕竟这个很容易上手。我可以负责任的说,如果不是架构大的体系,仅仅是想做些炫一些的效果,那我可以很负责的告诉你,除了有些3D效果实现起来可能不太容易以外,as对付其他到很多东西,已经绰绰有余。等你基本通过as明白了编程到底怎么回事,再去啃as的大部头也不晚。如果你是后台技术的程序员,想学一些flash的话,如果你已经精通C#,JAVA等面向对象的语言,那本系列教程你可以很华丽的略过,直奔as3吧,你会发现,那些东西对你来说,很熟悉,很熟悉。说来说去,as2似乎没什么用了,但我知道,总是有哪一部分人,他们希望在flashas方面有新建树,但是却被as3的架势吓退了路。陪着flash从1.0的时代一直走到现在,却没有了信心继续走下去(曾经在一些flash论坛中看到有人声泪俱下的诉说自己学习flash的辛酸历程,呵呵)本教程就是写给这些人。只是想说,人人皆可flash,as并没有那么困难。等你有一天顺手了,再登堂入室,体会as3的博大精深,也不迟。.net横行的时代,不是还有N多的应用在用asp吗?技术不在高,够用就行。最需要武装的,不是技术本身,而是头脑。好了,废话太多。写到这儿,发现文章已经很长了,就此打住吧。(读者:骗子,骗我们进来,听你说相声呢!讲点干货好不好!西红柿伺候!!!!)脑袋开花下堂去……玩的就是影片剪辑-flashas2简易教程第1篇上一篇教程出来以后,很多网友留言,问我为什么不直接讲as3,而是很过时的唠叨as2,这里首先澄清一下,as3是一个好东西,本博客并非要视as3为无物,在一个3.0的时代推崇2.0,而是2.0简易教程这个系列,将主要以2.0为主。关于3.0的应用,我们也会在其它的一些系列或者相关的文章中提到。至于本教程面对的对象,其实我在第0篇的唠叨里已经说得很清楚了,就是针对那些已经使用过flash很多年,对flash产生了深厚的感情,甚至就是吃flash这碗饭的同志们,随着flash越来越向技术平台转型,很多人可能觉得跟不上,觉得掉队了,甚至对自己flash的能力产生了怀疑,所以,这系列其实就是想说,flashas并没有那么难,障碍在自己的心里。只要你愿意去做,你会发现你完全跟得上flash大潮的发展。所以,简单点说,这个教程不是面对程序员的,恰恰就是面对设计师和动画师的。这个回答可能很多人不喜欢,并且要问我,为何在一个程序员云集的博客发给设计师的东西。我要说首先互联网是开放的,其次,像博客园这样执著于专业领域的网站实在不多。好的,废话结束,下面开始讲课。用过flash的人都知道,flash中,有一个很重要的概念:影片剪辑(一般,我们简称为mc),它几乎是flash一切动画的基础。Flash这东西,一言以蔽之,就是如何让很多影片剪辑在界面里按你想象的运动起来。滑动、变大、变小、旋转、显示、消失……就是这些最基础的运动,构成了flash,甚至是说任何图形界面的软件的最基本的交互和展现形式。在关键祯时代,我们用关键祯来进行这些最基本的事情,在as时代,我们用as来做,如此而已。在早期的flash版本里边,我们都知道,按钮司交互,影片剪辑管运动,所以,以前大家做一个flash,思路很简单,我需要一个东西有交互行为,说白了就是我点点点,他动动动,就直接做个按钮,放到库里,再拖到场景里用;我需要一个东西动起来,直接建一个影片建立,放到场景里,再拖到场景里用。在as时代,我们用as来做,首先需要明白的也是这一点。(上面这两段看不懂的同学,请先找一些flash软件使用的最基本教程看一下,至少了解一下库是什么东西,影片剪辑应该如何建立)。一、用代码建立空的影片剪辑在flashas里,我们同样可以建立影片剪辑。所以,今天咱们先来说一下如何建立影片剪辑。打开flash软件,鼠标点中时间轴上的第一祯。然后打开动作面板,在里边输入如下的语句:this.createEmptyMovieClip(“myMc”,1);这就在场景里边建立了一个名为myMc的影片剪辑。当然,目前为止,你看不到这个影片剪辑,因为他是空的。关于上面这句话,有几点我们先解释一下。this指的是这个影片剪辑的作用域,简单点说,就是我是在这一祯上建立的影片剪辑。“.”是flash最典型的点语法,说简单点,就是你可以把它理解为“的”或者“下的”或者“属于他的”,高深专业的解释这里暂时就不讲了,只会增加初学者的理解难度。我可以不太负责任的告诉大家,你可以不太规范的认为,flash在表示“的”,“下的”,“属于他的”时候都用“.”来表示。比如刚才这句,你可以理解为在“this”下面建立空的影片剪辑。再比如this.myMc._x,你可以理解为this下面的myMc的_x。这样说对一些谈程序色变的美工更容易接受一些。再后面的部分createEmptyMovieClip,看起来很长,但是如果你E文足够好,应该能看出来,这就是创建空的影片剪辑的英语。所以,这句话还是很好记的。当然,在程序命令里,他把这几个单词都连接起来了,并且中间每个单词的第一个字母大写。这种写法很形象地被称为“骆驼式”命名法。Flash里边的变量名、属性、方法、命令等等,基本都遵循这种规则。你如果希望你写的程序看起来比较专业,同时还容易理解,希望你也一开始养成良好的命名习惯,坚持使用“骆驼式命名法”。还有一点需要强调的是,flash是严格区分大小写的,所以,“myMc”和“mymc”并不是一个东西,如果你写的程序怎么调试都不对,记住检查一下大小写的问题。这是初学者经常会犯的错误。再看后面,(myMc”,1),前面是你为影片剪辑命的名,后面是它的深度,命的名很好理解。深度需要解释一下,用过flash或者photoshop的人都知道,有一个层的概念,上面的层会压住下面的层。深度也是一个类似的概念。深度值越大,越在上面,深度值越小越在下面。但是深度有几点和层不同的概念需要记住。第一,一个深度上只能有一个东西存在。如果有两个的话,后面建立的会覆盖掉前面的。第二,所有在场景里通过绘图工具和拖拽而不是程序建立的对象,默认的处于第0层,也就是说,你用程序建立的影片剪辑,都会盖住里处于时间轴上的那些对象。不管这些对象在时间轴上是第几层,都会在程序建立的影片剪辑下面。所以,这两点就告诉我们,第一,如果你已经在一个深度上建立了一个影片剪辑,再建立下一个的时候,换个深度。比如,this.createEmptyMovieClip(“myMc”,1);this.createEmptyMovieClip(“myBtn”,1);这样的写法是错误的,第一个影片剪辑,myMc被覆盖了。正确的写法应该是这样的this.createEmptyMovieClip(“myMc”,1);this.createEmptyMovieClip(“myBtn”,2);或者this.createEmptyMovieClip(“myMc”,this.getNextHighestDepth());this.createEmptyMovieClip(“myBtn”,this.getNextHighestDepth());getNextHighestDepth()是获得上一深度的意思;以确保Flash将该影片剪辑呈现在当前影片剪辑中同一级和同一层上所有其它对象的前面。第二点,如果你在场景里,用工具建立了一个影片剪辑,或者从库里拖出来一个影片剪辑,放到场景里了,现在你想把它放到刚才你用createEmptyMovieClip建立的影片剪辑上面,默认的情况下不可能。你会看到,createEmptyMovieClip建立的影片剪辑把它给盖住了。好了,现在我们就学会了如何用程序建立一个影片剪辑。那边有同学说了,你建立了半天,但是我一发布,啥都没有,我建立这个空的影片剪辑有啥用呢?这个问题,我来回答,首先,大家都知道,flash的影片剪辑不仅仅是为了显示一个可见的东西,还有一个重要的作用,就是容器。影片剪辑可以作为放别的影片剪辑或者其他对象的容器。你可以把需要一起运动的很多东西,放到一个影片剪辑里,这样指挥它们运动的时候比较方便。就像你如果把一个苹果、一个梨、一个香蕉,从a处移动到b处,一种方法是把它们分别移动过去,还有一种方法,是放到一个篮子里,一起移过去。容器在这个动画里的作用,就是这个篮子。第二点,你现在之所以看不到你建立的影片剪辑,是因为你还没有对它进行任何操作。如果你真的非要看到它才放心,请把下面这段代码拷到你的程序下面。这段代码的作用是在myMc的影片剪辑里画了一个黑色的长方形,至于具体如何画的,我们以后会讲。愿意研究的人,可以先熟悉一下。with(this.myMc){beginFill(0x000000,100);moveTo(0,0);lineTo(200,0);lineTo(200,100);lineTo(0,100);lineTo(0,0);endFill();}好了,现在发布一下,(不知道发布是什么的同学,请按enter+ctrl,就发布了)看到了吧?那边又有一位同学有意见了。你这么费劲,打了半天字,写了这么多行,才花了这样一个正方形,效率太低了,我用绘图工具,一比划,就出来了。比你快多了,不知道你写这么多行程序有什么用?首先,第一绘图工具在作矢量图型方面,的确比用代码生成更快。这也是flash的优势所在。第二、代码生成并非没有用处,这个以后随着学习的深入,大家就逐渐明白了,这儿不废话了。二、从库中加载影片剪辑当然,既然flash在绘图方面有自己独到的优势,并且我们平时应用中经常将用ps或其他软件做好的图型直接导入flash的库中,供影片剪辑调用,如果flashas仅仅为了代码化,就把这一优势扔掉,就是昏了头了。所以flashas里边,除了createEmptyMovieClip来建立影片剪辑以外,还有一种方法,可以直接把库中的影片剪辑加载到场景中来。我们先回忆一下,如果不用代码,直接把库里的元件放到场景里,怎么办?对,很简单。直接一拖,就过来了。用代码来实现应该怎么做呢?首先在库中找到你要加载的影片剪辑,用右键点击他,选“链接”,弹出一个小框。选中“为actionscript导出”,此时你可以看到,“在第一桢导出”同时也被选中了。在标识符框中,填入你为这个影片剪辑起的标识符。在这里建议影片剪辑的名称和标识符统一起
本文标题:人人都可flash-flash+as2基础教程
链接地址:https://www.777doc.com/doc-2751225 .html