华丽外表的下面 吕睿 2001年 35期 #1前 言    如果问当今在网上流行发展最快的多媒体格式是什么,那Flash应该获此殊荣。从几年前的Flash3直到现今的Flash5,其扩展的速度真是可以用“飞”来形容。但随着软件的不断升级,功能的加强和界面的更新,也给一些后来想学习Flash的朋友们造成了一定的影响。初学者面对别人完成了的精彩动画赞叹之余不免感到力不从心,纷繁复杂的效果到底是怎样完成的呢?想看源文件却苦于无法得到,想分析却无从入手。请重新树立起你要学好Flash的决心吧,因为我们就要带你走入它炫目外表的下面,一窥究竟。学习Flash,最初步的当然就是Flash的场景。每个Flash动画片都由一个或多个场景构成,各种影片属性都会在场景中体现出来,如宽和高、背景色、播放速度等,当然所有的组件和对象都要在场景上才能参加“演出”,了解Flash的内部场景属性是我们学习Flash的第一步,场景的大小,播放的速度都是很重要的。   #1Flash的基本构成   先了解一下Flash的基本构成,这往往被初学者所忽视,但它却会对以后的学习有很大的帮助。Flash基本由三大部分组成——从外部导入Flash使用的各种文件,在Flash中自行创造或修改重组的对象,最后就是可以起到控制作用的Action。   #21.从外部导入Flash的文件   从外部导入Flash的文件又基本可分为三大类:声音,位图和矢量图。也许有朋友要问,不是还能导入动画吗?没错,但导入的动画到了Flash里就变成了图片,最好自己再重新处理过,否则容量上就有点吃紧了。对于声音没什么好多说的,导入wave或aiff到Flash后,Flash在输出动画时会以mp3格式来压缩它们,所以请记住,输出的swf中的音乐都是mp3形式存在的,这个我们会在后面的破解中详细讲。接着就是位图文件了,gif及mov等动画输入到Flash后会成为一组位图文件。在Flash中可以调整位图文件的压缩比,只要双击library中的位图,在弹出的窗口中去掉Use imported JPEG data的选框就可以了(^35060101a^)。在Flash中想编辑位图的话就要先把它打碎,一旦打碎了位图,它就成为了Flash的内部组成部分了,但原来的位图不能删除。最后就是矢量图了,我们知道在Flash中唱主角的就是矢量图,导入矢量图到Flash里也就是必然的了,如果被导入的矢量图文件(如Illustrator的.eps、.ai文件)本身就有好几层,那么在Flash中就会自动添加新层,导入之后只要将导入的矢量图ungroup后就能像Flash里自己创作的矢量图一样编辑操作了。关于外部导入的图像还要说的就是将导入的位图在Flash里转为矢量图的一些特性,首先请记住用modify下的trace bitmap可以将导入的位图转为矢量图,一旦转好之后导入的位图和转好的矢量图就没有任何关系了,把它删除掉也不会有影响;而对转好的矢量图来说,它就和我们自己在Flash中内建的矢量图一样,可以任意操作(可以试试用group和ungroup)。   #22.在Flash中自行创作的对象   在Flash中自行创作的对象可以说是你中有我,我中有你的。一个Flash动画大致由电影夹、图片、鼠标事件三大类组件再加上文本构成。在一个电影夹中可以有图像和按钮,同样在图像和按钮中也可以包含电影夹或互相包含。这就会使初学者很迷惑,它们的关系到底是怎样的呢?从总体上来说,图像、电影夹、按钮这些Flash组件是同一等级的,一个组件可以重复使用多次。   注意一个问题就是“鸡生蛋和蛋生鸡”的问题。也就是说我们先创建了图像组件A,然后再创建电影夹组件B,其内容就是图像组件A,如果我们把电影夹组件B拖入图像组件A的话会发生什么事呢?自己试试看吧, 但试过之后就要记住以后千万别犯这种错误哦。总而言之,在Flash中只要是转为组件的对象都有着很高的再利用率,编辑外层的组件并不会影响到内层组件的存在,而编辑内层组件却会影响外层组件的显示效果。至于文本其实也可以被包括到组件中去,但由于有文本变量的存在而比较特殊,在后面我们破解Action Script时就会有接触。   #23.起控制作用的Action   Action的编写最令广大学者头痛不已,其实在Flash4或Flash5中Action的编写已经是很直观的了,在Flash4中有Expression Editor可以帮助我们查看命令及其作用(^35060101b^)。在Flash5中的normal模式下也是很直观的。在Flash中每一个关键帧,每一个按钮,甚至电影夹(Flash5)中都能写入Action。其作用可以说是无所不能,几乎可以控制Flash对象的一切属性。如果仅仅是在Flash中点选Action来使用,那将会是很容易的,不幸的是,每当我们要使用Action时或多或少都要用到各种表达式。Flash自身虽然提供了一定的Action说明和选择,但在这时几乎就帮不上什么忙了,所以我们需要研究别人写的Flash源文件,可是优秀的Action源文件不大好找,别急,这将是我们后文中的一道大菜!   #1破解Flash文件   为了更好地学习Flash,对于初学者们来说,有可供参考的源文件是很重要的。我们大可发挥“拿来”主义,去研究国内外高手写成的种种Flash,好的Flash源文件并不容易得到,于是破解swf这个概念就诞生了。   这里我们先说说最简单的方法。对于没有加锁写保护的swf文件来说,我们可以通过在Flash中导入它的方法来获得一些相关资源,其主要可以获得图片和矢量图组件。方法是用file\importer。但是经过导入的swf在Flash中可能看似没有什么改变,实际上早已面目全非了。举个例子,将一个有三层并含有Action的Flash文件(^35060101c^)的swf导入一个新建的Flash文件中,我们将会发现如下变化:层都消失了,Action都消失了,凡是有帧的地方都变成了关键帧(^35060101d^)。再打开library看一看,我们会发现原来没有被转为组件的位图被转为组件了,原来包含有图像组件的电影夹组件变成了它包含的图像组件。   上面只是一个简单的例子,请记住,如果导入swf的话,声音不会被导入;包含有动画的图像组件被导入后动画会变成连续的关键帧,每一关键帧中都会包含一个新的图像组件;所有的层都会丢失,在导入时Flash会自动为层创建关键帧,但层的结构及名字都会丢失;电影夹中内含的内容除了第一帧外都会丢失,并且第一帧的内容会自动变为图像组件;按钮的情况和电影夹差不多,除了在“up”帧里的内容被转为图像组件保留外其它内容都会丢失;两个关键帧之间的位移和形变都会被连续的关键帧代替;swf里使用的位图将被完好地导入,但是它们原来的名字会丢失,仅以bitmap1、bitmap2等代替;但让人感到高兴的是遮罩(mask)层在导入后会得到保留。   难道我们参考别人的swf就只能得到这么点东西了吗?更何况还有加了写保护的swf更是不让我们尝一点点甜头了。别急,有需求就会有产品,专业的swf破解软件就是为此而生的。