设为首页收藏本站
搜索
楼主: 夜飞鹰

flash专栏

[复制链接]

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:30:02 |显示全部楼层

flash专栏

用Flash制作闪电效果
      在Flash动画中逼真地模拟出自然界的景象对新手来说有一定难度,涉及到创意及制作经验。
      制作原理
      利用ActionScript复制一小段一小段的线段并连接形成闪电。在开始的时候利用随机函数设置闪电的位置。再配合背景的明暗变换,达到逼真的效果。
      制作步骤
      1.打开Flash,新建一个550×400的文件,背景色为黑色。
      2.Insert symbol新建元件命名为“线条”,在工具栏上选择Rectagle tool,并且将Stroke color设为无,fill
      color白色,画一个矩形。
      3.Windows→panels→align打开align面板,设置矩形居中对齐。在工具栏上选择Arrow tool,用鼠标选中这个矩形
      ,Windows→panels→fill打开fill面板,在下拉菜单中选择Liner
      gradient(线形渐变),在出现的滑动杆上可以设置渐变的颜色,如图1即由蓝色到白色再到透明的渐变色
      4.这里有一个小技巧就是如何设置颜色为透明,Windows→panels→mixer打开Mixer面板,选择填充色Fill
      color,在面板的右边有R、G、B、Alpha四个下拉框,拖动alpha框的下拉条就可以调整颜色的透明度,将Alpha值设置为0%就是完全透明的了(图2)。
      5.新建一个元件,命名为“线条动画”,从library中拖动“线条”元件到layer 1,在第一、三、四、五、六、七、十一帧建立关键帧(Insert
      keyframe),鼠标单击第一帧,Windows→panels→effect打开Effect面板,设置Alpha值为0%,单击第三帧,设置Alpha值为100%,单击第四帧,设置Alpha值为80%,单击第五帧,设置Alpha值为100%,单击第六帧,设置Alpha值为80%,单击第七帧,设置Alpha值为100%,单击第十一帧,设置Alpha值为0%。鼠标右键单击第一帧,在弹出的菜单中选择Creat
      motion tween,建立motion动画,同样的方法在第七帧与十一帧之间建立Motion动画(图3)。
      6.新建元件命名为“背景”,在工具栏上选择Rectagle tool,Fill
      color为白色,绘制一个矩形,Windows→panels→info打开Info面板,设置宽为550,高为400。在Align面板上设置居中对齐。
      7.回到Scene1,从library中拖动“背景”元件到Layer1,在第一、五、六、七、十帧建立关键帧。鼠标单击第一帧,Windows→panels→effect打开effect面板,设置alpha值为0%,单击第五帧,设置alpha值为20%,单击第六帧,设置alpha值为0%,单击第七帧,设置alpha值为20%,单击第十帧,设置alpha值为0%。右键单击从第七帧到第十帧之间的任意一帧,在弹出的菜单中选择Creat
      motion tween,建立motion动画(如图4)。
      8.新建一层Layer 2,从Library中拖动“线条动画”元件到layer
      2,Windows→panels→instance弹出Instance面板,设置Name属性为:toto。
      9.新建一层Layer 3,双击第一帧,在弹出的Frame action面板中输入如下ActionScript:
      I = 1;
      //设置变量
      setProperty ("toto", _visible, 0);
      //设置name属性为toto的movieclip不可见。这是为了防止让别人看到复制的原形而影响效果所采取的手段
      X = 100+Number(random(300)) ;
      //设置随机数,得到一个变量x,为x坐标,加上100是为了防止x坐标过小,而导致闪电不在屏幕内。
      Max = random(350);
      //取随机数,max 为复制movieclip的个数,这样取得随机数后,则每次复制的movieclip个数不定,表现出来的效果就是闪电的长短不一。
      Inspiration = random(3)-1;
      在第二帧新建关键帧,双击第二帧,在弹出的frame action面板中输入如下actionscript:
      while (Number(I)
      //当I小于max时执行以下actionscript
      I = Number(I)+1;
      //一个变量,用来决定每个复制出的movieclip的偏移量
      //执行actionscript的次数
      duplicateMovieClip ("Toto", "Toto" add I, I);
      //复制名称为toto的movieclip
      setProperty ("Toto" add I, _y, I);
      //设置复制出的movieclip的y坐标值
      Trajectoire = Number(random(5)-2)+Number(Inspiration);
      X = Number(X)+Number(trajectoire);
      //得到复制出的movieclip的x轴坐标,并且每一个x坐标都会有偏移量
      setProperty ("Toto" add I, _x, X);
      setProperty ("Toto" add I, _xscale, I-Max);
      }
      //设置复制出的movieclip的x轴坐标与变形
      while (Number(I)<350) {
      I = Number(I)+1;
      removeMovieClip ("Toto" add I);
      }
      //移除复制出的movieclip,使闪电有逐渐消失的效果。
      本例效果:http://www.5dmedia.com/users/pcking/light.html
      本例源文件:http://www.5dmedia.com/users/pcking/light.fla

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:32:56 |显示全部楼层

flash专栏

如何在邮件中使用flash动画
      
      在网上你会看到许多漂亮的Flash动画,如果想要向朋友推荐这个Flash,而网站本身又没有提供发送功能的话,那就只能自己写邮件告诉他(她)了。最简单的方法当然是将该网页的网址直接发送给朋友,稍微“专业”一点就可以查看网页源代码,“揪”出Flash文件的绝对地址发送给对方,这样就可让对方全屏观看了。但如果我们还想与众不同一点呢?那就直接把Flash嵌入到邮件中吧,让对方一打开邮件就能直接看到你的心意了。漂亮动感的Flash一定让你在朋友面前好好的Show一下!
      要在邮件中使用Flash,首先要找到一个支持HTML邮件编辑和发送的邮件程序,或提供HTML源码支持的WebMail。如果是用邮件程序,主流的邮件程序如Foxmail和Outlook都支持发送网页或导入网页发送。
      虽然两个软件都不支持Flash的直接发送,但并不说明在邮件中不能使用Flash,只是在用网页编辑工具“写”邮件时,将Flash文件的地址设置成网络绝对地址,就可以保证在对方收信浏览时也能正常阅读了。然后再使用邮件程序的相关功能将网页导入作为邮件就OK。具体过程在两个程序中略有不同,在此不详谈。
      使用WebMail稍微麻烦点,要啃源代码哦。而且支持HTML源代码的WebMail也不多,笔者仅发现ChinaRen的WebMail支持。不过在网吧上网的读者却不在少数,习惯使用WebMail更是占大多数,为了照顾这些朋友,下面是一个通过编辑HTML源码实现在邮件中嵌入Flash的实例过程。(如图是单独发送的一个Flash
      MV──“台北圣诞夜”)。
      因为使用的是网址引用,Flash本身并不打包进邮件,对邮件的大小几乎没有什么影响。在WebMail的邮件编辑器中切换到源码模式,在相应位置增加以下几行代码:
      从上面可以看出,这其实就是在网页中使用Flash控件的简化代码。首先要找出这个Flash文件的绝对地址。现在我们查看这个Flash所在网页的源代码,再使用抠“.swf”文件的方法,逐个试探出你所需的Flash的绝对地址。至于上面这长长的一串源码,咱们也可以偷个懒,这里告诉你一个捷径:在Flash地址的附近就是Flash控件的代码,将它们都复制出来吧。然后将相对地址换成绝对地址,再把长、宽改成在邮件中合适的大小(width="400"表示宽,
      height="300"表示高),这就OK了,预览一下,还可以吧?不行的话再作调整。
      看到以前用WebMail写出来的邮件都是灰头土脸的,现在突然“有声有色”起来,高兴之余也不禁感叹,硬件的发展跟不上软件,而软件的更新也总是只能跟着新技术跑,超文本邮件才开始时兴起来,我们却又为将Flash这一网络新时尚使用到我们的邮件中而奔波了。正是通过这种技术与时尚需求的不断螺旋发展,e时代似乎与我们越来越贴近了,我们的e生活也越来越显得美丽动人。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:35:43 |显示全部楼层

flash专栏

Flash MX常用ActionScript速查手册
      
      ActionScript是Flash的脚本语言,是一种面向对象编程语言。使用ActionScript可以控制Flash动画中的对象,创建导航元素和交互元素,扩展Flash创作交互动画和网络应用的能力。本文主要介绍Flash
      MX中最常用到的ActionScript集合。
      一、动作
      动作部分的Action是用来控制影片播放状态的脚本集合。以利于Flash脚本编写人员速查。
      (一)影片控制
      1.goto
      语法:gotoAndPlay(scene, frame)
      参数:scene 播放头将转到场景的名称。frame 播放头将转到的帧的编号或标签。
      描述:动作;将播放头转到场景中指定的帧并从该帧开始播放。如果未指定场景,则播放头将转到当前场景中的指定帧。
      2.on
      语法:on(mouseEvent) {statement(s);}
      参数: statement(s)是指发生mouseEvent时要执行的指令。
      mouseEvent是“事件”触发器。当发生此事件时,执行事件后面花括号中的语句。可为mouseEvent参数指定下面的任何值:
      press在鼠标指针经过按钮时按下鼠标;release在鼠标指针经过按钮时释放鼠标按钮;releaseOutside当鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮之外,此时释放鼠标;rollOut鼠标指针移出按钮区域;rollOver;鼠标指针滑过按钮;dragOut在鼠标指针滑过按钮时按下鼠标,然后滑出此按钮区域;dragOver在鼠标指针移过按钮时按下鼠标,然后移出此按钮,再移回此按钮;keyPress(key)按下指定的key。此参数的key部分可使用Flash“键盘键和键控代码值”中所列的任何键控代码进行指定,或者使用Key对象的属性摘要中列出的任何键常量进行指定。
      描述:事件处理函数;指定触发动作的鼠标事件或按键事件。
      3.play
      语法:play()
      描述:动作;在时间轴中向前移动播放头。
      4.stop
      语法:stop
      描述:动作;停止当前正在播放的影片。此动作最通常的用法是用按钮控制影片剪辑。
      5.stopAllSounds
      语法:stopAllSounds()
      描述:动作;在不停止播放头的情况下停止影片中当前正在播放的所有声音。设置到流的声音在播放头移过它们所在的帧时将恢复播放。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:36:43 |显示全部楼层

flash专栏

(二)浏览器/网络
      该部分的Action是Flash MX用来与影片或外部文件进行交互操作的脚本集合。
      1.fsCommand
      语法:fscommand(″command″, ″parameters″)
      参数:command。parameters均是一个传递给宿主应用程序用于任何用途的字符串;或者一个传递给Flash Player的值。
      描述:动作;使Flash影片能够与Flash Player或承载Flash
      Player的程序(如Web浏览器)进行通讯。还可使用fsCommand动作将消息传递给Director,或者传递给VB、VC++和其他可承载ActiveX控件的程序。
      2.getURL
      语法:getURL(url [, window [, ″variables″]])
      参数:url可从该处获取文档的URL。
      window一个可选参数,指定文档应加载到其中的窗口或HTML框架。你可输入特定窗口的名称,或从下面的保留目标名称中选择:_self指定当前窗口中的当前框架;_blank指定一个新窗口;_parent指定当前框架的父级;_top指定当前窗口中的顶级框架;variables用于发送变量的GET或POST方法。如果没有变量,则省略此参数。GET方法将变量追加到URL的末尾,该方法用于发送少量变量。POST方法在单独的HTTP
      标头中发送变量,该方法用于发送长的变量字符串。
      描述:动作;将来自特定URL的文档加载到窗口中,或将变量传递到位于所定义URL的另一个应用程序。若要测试此动作,请确保要加载的文件位于指定的位置。若要使用绝对URL,则需要网络连接。
      3.loadMovie
      语法:loadMovie(″url″,level/target[, variables])
      参数:url要加载的SWF文件或JPEG文件的绝对或相对URL。
      target指向目标影片剪辑的路径。目标影片剪辑将替换为加载的影片或图像。只能指定target影片剪辑或目标影片的level这两者之一。
      level一个整数,指定Flash
      Player中影片将被加载到的级别。在将影片或图像加载到级别时,标准模式下“动作”面板中的loadMovie动作将切换为loadMovieNum;在专家模式下,必须指定loadMovieNum或从“动作”工具箱中选择它。
      variables一个可选参数,指定发送变量所使用的HTTP方法。该参数须是字符串GET或POST。
      描述:动作;在播放原始影片的同时将SWF或JPEG文件加载到Flash
      Player中。loadMovie动作使你可以同时显示几个影片,并且无需加载另一个HTML文档就可在影片之间切换。
      使用unloadMovie动作可删除使用loadMovie动作加载的影片。
      4.loadVariables
      语法:loadVariables (″url″ ,level/″target″[, variables])
      参数:url变量所处位置的绝对或相对URL。
      level指定Flash Player中接收这些变量的级别的整数。参数具体用法同loadmovie。
      target指向接收所加载变量的影片剪辑的目标路径。
      variables一个可选参数,指定发送变量所使用的HTTP方法。
      描述:动作;从外部文件(例如文本文件,或由CGI脚本、ASP、PHP脚本生成的文本)读取数据,并设置Flash Player
      级别或目标影片剪辑中变量的值。此动作还可用于使用新值更新活动影片中的变量。
      5.unloadMovie
      语法:unloadMovie[Num](level/″target″)
      参数:level加载影片的级别(_levelN)。从一个级别卸载影片时,在标准模式下,“动作”面板中的
      unloadMovie动作切换为unloadMovieNum;在专家模式下,必须指定unloadMovieNum,或者从“动作”工具箱中选择它。
      target影片剪辑的目标路径。
      描述:动作;从Flash Player中删除一个已加载的影片或影片剪辑。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:38:17 |显示全部楼层

flash专栏

(三)影片编辑控制
      1.duplicateMovieclip
      语法:duplicateMovieClip(target, newname,depth)
      参数:target要复制的影片剪辑的目标路径。
      newname复制的影片剪辑的唯一标识符。
      depth复制的影片剪辑的唯一深度级别。深度级别是复制的影片剪辑的堆叠顺序。这种堆叠顺序很像时间轴中图层的堆叠顺序;较低深度级别的影片剪辑隐藏在较高堆叠顺序的剪辑之下。必须为每个复制的影片剪辑分配一个唯一的深度级别,以防止它替换现有深度上的影片。
      描述:动作;当影片正在播放时,创建一个影片剪辑的实例。无论播放头在原始影片剪辑(或“父级”)中处于什么位置,复制的影片剪辑的播放头始终从第一帧开始。如果删除父影片剪辑,则复制的影片剪辑也被删除。
      2.onClipEvent
      语法:onClipEvent(movieEvent){
      statement(s);
      }
      参数:movieEvent是一个称作“事件”的触发器。当事件发生时,执行该事件后面花括号中的语句。可以为movieEvent参数指定下面的任何值:load影片剪辑一旦被实例化并出现在时间轴中时,即启动此动作。;unload在从时间轴中删除影片剪辑之后,此动作在第一帧中启动。处理与Unload影片剪辑事件关联的动作之前,不向受影响的帧附加任何动作;enterFrame以影片帧频不断地触发此动作。首先处理与enterFrame
      剪辑事件关联的动作,然后才处理附加到受影响帧的所有帧动作脚本;mouseMove每次移动鼠标时启动此动作。_xmouse和_ymouse属性用于确定当前鼠标位置;mouseDown当按下鼠标左键时启动此动作;mouseUp当释放鼠标左键时启动此动作;keyDown当按下某个键时启动此动作。使用Key.getCode方法获取最近按下的键的有关信息;keyUp当释放某个键时启动此动作。使用Key.getCode方法获取最近按下的键的有关信息;data当在loadVariables或loadMovie动作中接收数据时启动此动作。当与loadVariables动作一起指定时,data事件只发生一次,即加载最后一个变量时。当与loadMovie动作一起指定时,获取数据的每一部分时,data事件都重复发生。
      statement(s)发生mouseEvent时要执行的指令。
      描述:事件处理函数;触发为特定影片剪辑实例定义的动作。
      3.removeMovieClip
      语法:removeMovieClip(target)
      参数:target用duplicateMovieClip创建的影片剪辑实例的目标路径,或者用MovieClip对象的
      attachMovie或duplicateMovieClip方法创建的影片剪辑的实例名。
      描述:动作;删除用MovieClip对象的attachMovie或duplicateMovieClip方法创建的,或者用
      duplicateMovieClip动作创建的影片剪辑实例。
      4.setProperty
      语法:setProperty(″target″,property,value/expression)
      参数:target到要设置其属性的影片剪辑实例名称的路径。
      property要设置的属性。
      value属性的新文本值。
      expression计算结果为属性新值的公式。
      描述:动作;当影片播放时,更改影片剪辑的属性值。
      5.startDrag
      语法:startDrag(target,[lock ,left ,top ,right,bottom])
      参数:target要拖动的影片剪辑的目标路径。
      lock一个布尔值,指定可拖动影片剪辑是锁定到鼠标位置中央(true),还是锁定到用户首次点击该影片剪辑的位置上(false)。此参数是可选的。
      left、top、right、bottom相对于影片剪辑父级坐标的值,这些坐标指定该影片剪辑的约束矩形。这些参数是可选的。
      描述:动作;使target影片剪辑在影片播放过程中可拖动。一次只能拖动一个影片剪辑。执行startDrag动作后,影片剪辑将保持可拖动状态,直到被stopDrag动作明确停止为止,或者直到为其他影片剪辑调用了
      startDrag动作为止。
      6.stopDrag
      语法:stopDrag()
      描述:动作;停止当前的拖动操作。
      7.updateAfterEvent
      语法:updateAfterEvent()
      描述:动作;当在onClipEvent处理函数中调用它时,或作为传递给setInterval的函数或方法的一部分进行调用时,该动作更新显示(与为影片设置的每秒帧数无关)。如果对updateAfterEvent的调用不在
      onClipEvent处理函数中,也不是传递给setInterval的函数或方法的一部分,则Flash忽略该调用。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:39:09 |显示全部楼层

flash专栏

(四)变量
      该部分Action是Flash MX脚本语言中的变量及对应操作的脚本集合。
      1.delete
      语法:delete reference
      参数:reference要消除的变量或对象的名称。
      描述:运算符;销毁由reference参数指定的对象或变量,如果该对象被成功删除,则返回true;否则返回false值。
      2.set variable
      语法:set(variable,expression)
      参数:variable保存expression参数值的标识符;expression分配给变量的值。
      描述:动作;为变量赋值。variable是保存数据的容器。变量可以保存任何类型的数据(例如,字符串、数字、布尔值、对象或影片剪辑)。每个影片和影片剪辑的时间轴都有其自己的变量集,每个变量又都有其自己独立于其他时间轴上的变量的值。
      3.var
      语法:var variableName1 [= value1][...,variableNameN [=valueN]]
      参数:variableName标识符;value分配给变量的值。
      描述:动作;用于声明局部变量。如果在函数内声明局部变量,那么变量就是为该函数定义的,且在该函数调用结束时到期。如果变量不是在块({})内声明的,但使用call动作执行该动作列表,则该变量为局部变量,且在当前列表结束时到期。如果变量不是在块中声明的,且不使用call动作执行当前动作列表,则这些变量不是局部变量。
      4.with
      语法:with (object) {
      statement(s);
      }
      参数:object动作脚本对象或影片剪辑的实例;statement(s)花括号中包含的动作或一组动作。
      描述:动作;允许你使用object参数指定一个对象(比如影片剪辑),并使用statement(s)参数计算对象中的表达式和动作。这可以使你不必重复书写对象的名称或路径。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:40:30 |显示全部楼层

flash专栏

(五)条件/循环
      该部分Action是Flash MX脚本中如何操作影片逻辑的脚本集合。
      1.break
      语法:break
      描述:动作;出现在一个循环(for、for..in、do while或while
      循环)中,或者出现在与switch动作内特定case语句相关联的语句块中。break动作可命令Flash跳过循环体的其余部分,停止循环动作,并执行循环语句之后的语句。当使用break动作时,Flash解释程序会跳过该case块中的其余语句,转到包含它的
      switch动作后的第一个语句。使用break动作可跳出一系列嵌套的循环。
      2.case
      语法:case expression: statements
      参数:expression任何表达式;statements任何语句。
      描述:关键字;定义用于switch动作的条件。如果case关键字后的expression参数在使用全等(===)的情况下等于switch动作的expression参数,则执行statements参数中的语句。如果在switch语句外部使用case动作,则将产生错误,脚本不能编译。
      3.continue
      语法:continue
      描述:动作;出现在几种类型的循环语句中;它在每种类型的循环中的行为方式各不相同。
      在while循环中,continue可使Flash解释程序跳过循环体的其余部分,并转到循环的顶端(在该处进行条件测试)。在do
      while循环中,continue可使Flash解释程序跳过循环体的其余部分,并转到循环的底端(在该处进行条件测试)。在for循环中,continue可使Flash解释程序跳过循环体的其余部分,并转而计算for循环的后表达式(post-expression)。在for..in循环中,continue可使Flash解释程序跳过循环体的其余部分,并跳回循环的顶端(在该处处理下一个枚举值)。
      4.Default
      语法:default: statements
      参数:statements任何语句。
      描述:关键字;定义switch动作的默认情况。对于一个给定的switch动作,如果该switch动作的
      Expression参数与case关键字后面的任何一个Expression参数都不相等(使用全等),则执行这些语句。
      5.do while
      语法:do {
      statement(s)
      } while (condition)
      参数:condition要计算的条件。
      statement(s)只要condition参数计算结果为true就会执行的语句。
      描述:动作;执行语句,然后只要条件为true,就计算循环中的条件。
      6.else
      语法:else statement
      else {...statement(s)...}
      参数:ondition计算结果为true或false的表达式。
      statement(s)如果if语句中指定的条件为false,则运行的替代语句系列。
      描述:动作;指定当if语句中的条件返回false时要运行的语句。
      7.else if
      语法:if (condition){
      statement(s);
      } else if (condition){
      statement(s);
      }
      参数:condition计算结果为true或false的表达式。
      statement(s)如果if语句中指定的条件为false,则运行的替代语句系列。
      描述:动作;计算条件,并指定当初始if语句中的条件返回false时要运行的语句。如果else
      if条件返回true,则Flash解释程序运行该条件后面花括号({})中的语句。如果else
      if条件为false,则Flash跳过花括号中的语句,运行花括号之后的语句。在脚本中可以使用else if动作创建分支逻辑。
      8.for
      语法:for(init; condition; next) {
      statement(s);
      }
      参数:init一个在开始循环序列前要计算的表达式,通常为赋值表达式。此参数还允许使用Var语句。
      condition计算结果为true或false的表达式。在每次循环迭代前计算该条件;当条件的计算结果为false时退出循环。
      next一个在每次循环迭代后要计算的表达式;通常为使用递增或递减运算符的赋值表达式。
      statement(s)在循环体内要执行的指令。
      描述:动作;一种循环结构,首先计算init(初始化)表达式一次,只要condition的计算结果为true,则按照以下顺序开始循环序列,执行statement,然后计算next表达式。
      9.For..in
      语法:for(variableIterant in object){
      statement(s);
      }
      参数:variableIterant作为迭代变量的变量名,引用数组中对象或元素的每个属性。
      object要重复的对象的名称。
      statement(s)要为每次迭代执行的指令。
      描述:动作;循环通过数组中对象或元素的属性,并为对象的每个属性执行statement。
      10.if
      语法:if(condition) {
      statement(s);
      }
      参数:condition计算结果为true或false的表达式。
      statement(s)如果或当条件的计算结果为true时要执行的指令。
      描述:动作;对条件进行计算以确定影片中的下一步动作。如果条件为true,则Flash将运行条件后面花括号({})内的语句。如果条件为false,则Flash跳过花括号内的语句,运行花括号后面的语句。使用if动作可在脚本中创建分支逻辑。
      11.switch
      语法:switch (expression){
      caseClause:
      [defaultClause:]
      }
      参数:expression任意表达式。
      caseClause一个Case关键字,其后跟表达式、冒号和一组语句,如果在使用全等的情况下,此处的表达式与switch
      expression参数相匹配,则执行这组语句。
      defaultClause一个default关键字,其后跟着如果这些Case表达式都不与switch
expression参数全等匹配时要执行的语句。
      描述:动作;创建动作脚本语句的分支结构。像If动作一样,Switch 动作测试一个条件,并在条件返回true值时执行语句。
      12.while
      语法:while(condition) {
      statement(s);
      }
      参数:condition每次执行while动作时都要重新计算的表达式。如果该语句的计算结果为 true,则运行statement(s)。
      statement(s)条件的计算结果为true时要执行的代码。
      描述:动作;测试表达式,只要该表达式为true,就重复运行循环中的语句或语句序列。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:41:17 |显示全部楼层

flash专栏

(六)用户定义的函数
      该部分的Action可以通过用户自己组合开发更具灵活的程序脚本。
      1.call
      语法:call(frame)
      参数:frame时间轴中帧的标签或编号。
      描述:动作;执行被调用帧中的脚本,而不将播放头移动到该帧。一旦执行完该脚本,局部变量将不存在。
      2.call function
      语法:object.function([parameters])
      参数:object其中定义了函数的对象(可以是影片剪辑)。
      function指定用户定义的函数的标识符。
      parameters可选参数,指示函数所需的任何参数。
      描述:动作;允许你在标准模式下,使用“动作”面板中的参数字段来调用用户定义的函数。
      3.function
      语法:function functionname ([parameter0, parameter1,...parameterN]){
      statement(s)
      }
      function ([parameter0, parameter1,...parameterN]){
      statement(s)
      }
      参数:functionname新函数的名称。
      parameter一个标识符,表示要传递给函数的参数。这些参数是可选的。
      statement(s)为function的函数体定义的任何动作脚本指令。
      描述:你定义的用来执行特定任务的一组语句。可以在影片的一个地方“声明”或定义函数,然后从影片的其他脚本调用它。定义函数时,还可以为其指定参数。参数是函数要对其进行操作的值的占位符。每次调用函数时,可以向其传递不同的参数。这使你可以在不同场合重复使用一个函数。
      4.method
      语法:object.method = function ([parameters]) {
      ...body of function...
      };
      参数:object对象的标识符。
      method方法的标识符。
      parameters要传递给函数的参数。可选参数。
      描述:动作(仅限标准模式);用于在标准模式下使用“动作”面板来定义对象的方法。
      5.Return
      语法:return[expression]
      return
      参数:expression要作为函数值计算并返回的字符串、数字、数组或对象。此参数是可选的。
      返回值:如果提供了expression参数,则返回计算的结果。
      描述:动作;指定由函数返回的值。return动作计算expression并将结果作为它在其中执行的函数的值返回。return动作导致函数停止运行,并用返回值代替函数。如果单独使用return语句,它返回null。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:42:24 |显示全部楼层

flash专栏

二、函数
      函数是Flash MX中至关重要的部分,是完成复杂的程序操作的必要组合。
      (一)常用函数
      顾名思义,该部分的内容是介绍Flash MX中常用逻辑函数脚本集合。
      1.escape
      语法:escape(expression)
      参数:expression要转换为字符串并以URL编码格式进行编码的表达式。
      描述:函数;将参数转换为字符串,并以URL编码格式进行编码,在这种格式中,将所有非字母数字的字符都转义为十六进制序列。
      2.eval
      语法:eval(expression)
      参数:expression包含要获取的变量、属性、对象或影片剪辑的名称的字符串。
      描述:函数;按照名称访问变量、属性、对象或影片剪辑。如果expression是一个变量或属性,则返回该变量或属性的值。如果expression是一个对象或影片剪辑,则返回指向该对象或影片剪辑的引用。如果无法找到expression中指定的元素,则返回undefined。
      3.getProperty
      语法:getProperty(instancename , property)
      参数:instancename 要获取其属性的影片剪辑的实例名称。
      property影片剪辑的属性。
      描述:函数;返回影片剪辑instancename的指定property的值。
      4.getTimer
      语法:getTimer()
      描述:函数;返回自影片开始播放时起已经过的毫秒数。
      5.targetPath
      语法:targetpath(movieClipObject)
      参数:movieClipObject对要获取其目标路径的影片剪辑的引用(例如,_root或_parent)。
      描述:函数;返回包含movieClipObject的目标路径的字符串。此目标路径以点记号表示形式返回。若要获取以斜杠记号表示的目标路径,请使用_target属性。
      6.unescape
      语法:unescape(x)
      参数:x要转义的十六进制序列字符串。
      描述:顶级函数;将参数x作为字符串计算,将该字符串从URL编码格式(这种格式将所有十六进制序列转换为ASCII字符)进行解码,并返回该字符串。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:42:59 |显示全部楼层

flash专栏

(二)数学函数
      该部分的Action帮助开发人员完成程序中的数学运算。
      1.isFinite
      语法:isFinite(expression)
      参数:expression要计算的布尔表达式、变量表达式或其他表达式。
      描述:顶级函数;对expression进行计算,如果其为有限数,则返回true,如果为无穷大或负无穷大,则返回false。无穷大或负无穷大的出现指示有错误的数学条件,例如被0除。
      2.isNaN
      语法:isNaN(expression)
      参数:expression要计算的布尔表达式、变量表达式或其他表达式。
      描述:顶级函数;对参数进行计算,如果值不是数字(NaN),则返回true,指示存在数学错误。
      3.parseFloat
      语法:parseFloat(string)
      参数:string要读取并转换为浮点数的字符串。
      描述:函数;将字符串转换为浮点数。此函数读取(或“分析”)并返回字符串中的数字,直到它到达不是数字(其初始含义为数字)部分的字符。如果字符串不是以一个可以分析的数字开始的,则parseFloat返回NaN。有效整数前面的空白将被忽略,有效整数后面的非数值字符也将被忽略。
      4.parseInt
      语法:parseInt(expression, [radix])
      参数:expression转换为整数的字符串。
      radix表示要分析数字的基数(基)的整数。合法值为2~36。此参数是可选的。
      描述:函数;将字符串转换为整数。如果参数中指定的字符串不能转换为数字,则此函数返回NaN。以0开头的整数或指定基数为8的整数被解释为八进制数字。以0x开头的字符串被解释为十六进制数字。有效整数前面的空白将被忽略,有效整数后面的非数值字符也将被忽略。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:43:32 |显示全部楼层

flash专栏

(三)转换函数
      该部分的Action是Flash MX用来处理内容格式转换的脚本集合。
      1.Boolean(函数)
      语法:Boolean(expression)
      参数:expression一个可转换为布尔值的表达式。
      描述:函数;将参数expression转换为布尔值,并以如下形式返回值:如果expression是布尔值,则返回值为expression。如果expression是数字,则在该数字不为零时返回值为true,否则为false。如果expression是字符串,则调用toNumber方法,并且在该数字不为零时返回值为true,否则为false。如果expression未定义,则返回值为false。如果expression
      是影片剪辑或对象,则返回值为true。
      2.Number(函数)
      语法:Number(expression)
      参数:expression要转换为数字的表达式。
      描述:函数;将参数expression转换为数字并按如下规则返回一个值:
      如果expression为数字,则返回值为expression。如果expression为布尔值,当
      expression为true时,返回值为1;当expression为false时,返回值为0。如果expression
      为字符串,则该函数尝试将expression解析为一个带有可选尾随指数的十进制数字。如果expression为undefined,则返回值为0。
      3.String(函数)
      语法:String(expression)
      参数:expression要转换为字符串的表达式。
      描述:函数;返回指定参数的字符串表示形式,规则如下所示:
      如果expression为布尔值,则返回字符串为true或false。如果expression是数字,则返回的字符串为此数字的文本表示形式。如果expression为字符串,则返回的字符串是
      expression。如果expression是一个对象,则返回值为该对象的字符串表示形式,它是通过调用该对象的字符串属性而生成的,如果不存在此类属性,则通过调用Object.toString
      而生成。如果expression是一个影片剪辑,则返回值是以斜杠(/)记号表示的此影片剪辑的目标路径。如果expression为undefined,则返回值为空字符串()。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:44:08 |显示全部楼层

flash专栏

三、常量
      该部分的aAction罗列出Flash MX中常用的常量脚本集合。
      1.false
      语法:false
      描述:表示与true相反的唯一的布尔值。
      2.newline
      语法:newline
      描述:常量;插入一个回车符(),该回车符在动作脚本代码中插入一个空行。newline可用来为代码中的函数或动作所获取的信息留出空间。
      3.null
      语法:null
      描述:关键字;一个可以赋予变量或者可以在函数未提供数据时由函数返回的特殊值。可以使用null表示缺少的或者未定义数据类型的值。
      4.true
      语法:true
      描述:表示false相反的唯一布尔值。
      5.undefined
      语法:undefined
      描述:一个特殊值,通常用于指示变量尚未赋值。对未定义值的引用返回特殊值undefined。动作脚本代码typeof(undefined)
      返回字符串“undefined”。undefined类型的唯一值是 undefined。
      当将undefined转换为字符串时,它转换为空字符串。undefined值与特殊值null相似。事实上,当使用相等运算符对null和undefined进行比较时,它们的比较结果为相等。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:44:44 |显示全部楼层

flash专栏

四、属性
      用Flash MX制作或开发动画,其中必不可少的就是使用脚本定义所有movie的属性。
      1.MovieClip._alpha
      语法:myMovieClip._alpha
      描述:属性;设置或获取由MovieClip指定的影片剪辑的Alpha透明度(value)。有效值为0(完全透明)到100(完全不透明)。如果影片剪辑的_alpha设置为
      0,虽然其中的对象不可见,但也是活动的。
      2.MovieClip._currentframe
      语法:myMovieClip._currentframe
      描述:属性(只读);返回由MovieClip指定的时间轴中播放头所处的帧的编号。
      3.MovieClip._droptarget
      语法:myMovieClip._droptarget
      描述:属性(只读);以斜杠语法记号表示法返回MovieClip放置到的影片剪辑实例的绝对路径。_droptarget属性始终返回以斜杠(/)开始的路径。若要将实例的_droptarget属性与引用进行比较,请使用eval函数将返回值从斜杠语法转换为点语法表示的引用。
      4.MovieClip._focusrect
      语法:myMovieClip._focusrect
      描述:属性;一个布尔值,指定当影片剪辑具有键盘焦点时其周围是否有黄色矩形。该属性可以覆盖全局_focusrect属性。
      5.MovieClip._framesloaded
      语法:myMovieClip._framesloaded
      描述:属性(只读);从影片流中已经加载的帧数。该属性可确定特定帧及其前面所有帧的内容是否已经加载,并且是否可在浏览器本地使用。该属性对于监视大影片的下载过程很有用。
      6.MovieClip._height
      语法:myMovieClip._height
      描述:属性;以像素为单位设置和获取影片剪辑的高度。
      7.MovieClip._name
      语法:myMovieClip_name
      描述:属性;返回由MovieClip指定的影片剪辑的实例名称。
      8._quality
      语法:_quality
      描述:属性(全局);设置或获取用于影片的呈现品质。设备字体始终是带有锯齿的,因此不受_quality属性的影响。
      9.MovieClip._rotation
      语法:myMovieClip._rotation
      描述:属性;以度为单位指定影片剪辑的旋转。
      10._soundbuftime
      语法:_soundbuftime = integer
      参数:integer在影片开始进入流之前缓冲的秒数。
      描述:属性(全局);规定声音流缓冲的秒数。默认值为5秒。
      11.MovieClip._target
      语法:myMovieClip._target
      描述:属性(只读);返回MovieClip参数中指定的影片剪辑实例的目标路径。
      12.MovieClip._totalframes
      语法:myMovieClip._totalframes
      描述:属性(只读);返回MovieClip参数中指定的影片剪辑实例中的总帧数。
      13.MovieClip._url
      语法:myMovieClip._url
      描述:属性(只读);获取从中下载影片剪辑的SWF文件的URL。
      14.MovieClip._visible
      语法:MovieClip._visible
      描述:属性;一个布尔值,指示由MovieClip参数指定的影片是否可见。不可见的影片剪辑(_visible属性设置为false)处于禁用状态。例如,不能点击_visible属性设置为false
      的影片剪辑中的按钮。
      15.MovieClip._width
      语法:MovieClip._width
      描述:属性;以像素为单位设置和获取影片剪辑的宽度。
      16.MovieClip._x
      语法:MovieClip._x
      描述:属性;设置影片坐标的整数,该坐标相对于父级影片剪辑的本地坐标。如果影片剪辑在主时间轴中,则其坐标系统将舞台的左上角作为(0,
      0)。如果影片剪辑位于另一个具有变形的影片剪辑中,则该影片剪辑位于包含它的影片剪辑的本地坐标系统中。因此,对于逆时针旋转90的影片剪辑,该影片剪辑的子级将继承逆时针旋转90的坐标系统。影片剪辑的坐标指的是注册点的位置。
      17.MovieClip._xmouse
      语法:MovieClip._xmouse
      描述:属性(只读);返回鼠标位置的坐标。
      18.MovieClip._xscale
      语法:MovieClip._xscale
      描述:属性;确定从影片剪辑的注册点开始应用的影片剪辑的水平缩放比例(percentage)。默认为(0,0)。
      19.MovieClip._y
      语法:MovieClip._y
      描述:属性;设置影片的坐标,该坐标相对于父级影片剪辑的本地坐标。同MovieClip._x。
      20.MovieClip._ymouse
      语法:MovieClip._ymouse
      描述:属性(只读);指示鼠标位置的坐标。
      21.MovieClip._yscale
      语法:MovieClip._yscale
      描述:设置从影片剪辑注册点开始应用的该影片剪辑的垂直缩放比例(percentage)。默认为 (0,0)。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:45:23 |显示全部楼层

flash专栏

五、对象
      由于Flash MX的脚本编程方式符合OO(面向对象)概念,所以,对象的脚本集合也是开发者经常使用的。
      (一)核心对象
      1.arguments
      arguments.callee
      语法:arguments.callee
      描述:属性;指当前被调用的函数。
      2.arguments.caller
      语法:arguments.caller
      描述:属性;指进行调用的函数的arguments对象。
      3.arguments.length
      语法:arguments.length
      描述:属性;实际传递给函数的参数数量。
      4.Array
      语法:new Array()
      new Array(length)
      new Array(element0, element1, element2,...elementN)
      参数:length一个指定数组中元素数量的整数。在元素不连续的情况下,length参数指定的是数组中最后一个元素的索引号加1。
      element0...elementN一个包含两个或多个任意值的列表。这些值可以是数字、字符串、对象或其他数组。数组中第一个元素的索引或位置始终为0。
      描述:Array对象的构造函数;你可使用构造函数来创建不同类型的数组:空数组、具有特定长度但其中元素没有值的数组或其中元素具有特定值的数组。
      5.Boolean
      语法:new Boolean([x])
      参数:x任何表达式。此参数是可选的。
      描述:Boolean对象的构造函数;创建Boolean对象的实例。如果省略x参数,则将Boolean
      对象初始化为具有值false。如果为x参数指定值,则该方法会计算它,并根据Boolean(函数)函数中的规则以布尔值返回结果。
      6.Date
      语法:new Date()
      new Date(year,month [,date [,hour[,minute [,second[,millisecond]]]]])
      参数:year一个0~99之间的值,表示1900年至1999年;如果年份不在上述范围内,则必须指定表示年份数的所有4位数字。
      返回:整数
      描述:Date对象的构造函数;构造一个新的Date对象,该对象保存当前日期和时间或指定的日期。
      7._global
      语法:_global.identifier
      返回值:对包含核心动作脚本类的全局对象(例如String、Object、Math和Array)的引用。
      描述:标识符;创建全局变量、对象或类。
      8.Math
      语法:Math.abs(x)
      参数:x一个数字。
      返回值:一个数字。
      描述:方法;计算并返回由参数x指定的数字的绝对值。
      9.Math.acos
      语法:Math.acos(x)
      参数:x一个介于-1.0~1.0之间的数字。
      描述:方法;以弧度为单位计算并返回参数x中指定的数字的反余弦值。
      10.Math.asin
      语法:Math.asin(x)
      参数:x一个介于-1.0~1.0之间的数字。
      描述:方法;以弧度为单位计算并返回参数x中指定的数字的反正弦值。
      11.Math.atan
      语法:Math.atan(x)
      参数:x一个数字。
      描述:方法;计算并返回参数x中指定的数字的反正切值。返回值介于-pi/2~+pi/2之间。
      12.Math.atan2
      语法:Math.atan2(y, x)
      参数:x一个数字,指定点的x坐标。y一个数字,指定点的y坐标。
      描述:方法;以弧度为单位计算并返回y/x的反正切值。返回值表示相对直角三角形对角的角,其中x是临边边长,而y是对边边长。
      13.Math.sqrt
      语法:Math.sqrt(x)
      参数:x一个大于等于0的数字或表达式。
      描述:方法;计算并返回指定数字的平方根。
      14.Number
      语法:myNumber = new Number(value)
      参数:value要创建的Number对象的数值,或者要转换为数字的值。
      描述:构造函数;新建一个Number对象。
      15.Object
      语法:new Object([value])
      参数:value要转换为对象的数字、布尔值或字符串。此参数是可选的。如果未指定value,则该构造函数创建一个未定义属性的新对象。
      描述:Object对象的构造函数;新建一个Object对象。
      16.String
      语法:new String(value)
      参数:value新String对象的初始值。
      描述:String对象的构造函数;创建一个新String对象。
      17.Super
      语法:super.method([arg1, ..., argN])
      super([arg1, ..., argN])
      参数:method要在超类中调用的方法。
      arg1可选参数,这些参数或者传递给方法的超类版本,或者传递给超类的构造函数。
      返回值:两种格式都调用一个函数。该函数可以返回任何值。
      描述:运算符:第一种语法格式可以用于对象方法体内,用以调用方法的超类版本,而且可以选择向超类方法传递参数(arg1...argN)。这对于创建某些子类方法很有用,这些子类方法在向超类方法添加附加行为的同时,又调用这些超类方法执行其原始行为。
      第二种语法格式可以用于构造函数体内,用以调用此构造函数的超类版本,而且可以选择向它传递参数。这对于创建子类很有用,该子类在执行附加的初始化的同时,又调用超类构造函数执行超类初始化。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:46:17 |显示全部楼层

flash专栏

(二)影片对象
      1.Accessibility.isActive
      语法:Accessibility.isActive()
      返回值:布尔值
      描述:方法;指示屏幕阅读器程序当前是否处于活动状态。当希望影片在有屏幕阅读器的情况下行为方式不同时,可使用此方法。
      2.Button.getDepth
      语法:myButton.getDepth()
      描述:方法;返回按钮实例的深度。
      3.Button.enabled
      语法:myButton.enabled
      描述:属性;指定按钮是否处于启用状态的布尔值。默认值为true。
      4.Button.tabEnabled
      语法:myButton.tabEnabled
      描述:属性;可以对MovieClip、Button或TextField对象的实例设置该属性。默认情况下它是未定义的。
      5.Button.tabIndex
      语法:myButton.tabIndex
      描述:属性;使你可以自定义影片中对象的Tab键排序。可以对按钮、影片剪辑或文本字段实例设置tabIndex属性,默认情况下为undefined。
      6.Button.trackAsMenu
      语法:myButton.trackAsMenu
      描述:属性;指示其他按钮或影片剪辑是否可接收鼠标按钮释放事件的布尔值属性。这将允许你创建菜单。你可以设置任何按钮或影片剪辑对象的trackAsMenu属性。如果
      trackAsMenu属性不存在,则默认行为为false。 可以在任何时间更改trackAsMenu属性;修改后的按钮会立即采用新的行为。
      7.myButton.useHandCursor
      语法:myButton.useHandCursor
      描述:属性;一个布尔值,当设置为true时,指示在用户用鼠标指针滑过按钮时是否显示手形光标。useHandCursor的默认值为true。如果useHandCursor属性设置为false,则将改用箭头光标。可以在任何时间更改useHandCursor属性;修改后的按钮会立即采用新的光标行为。可以从原型对象中读出useHandCursor属性。
      8.System.capabilities.hasAudio
      语法:System.capabilities.hasAudio
      描述:属性;指示播放器是否具有音频功能的布尔值。默认值为true。其服务器字符串为 A。
      9.System.capabilities.hasAudioEncoder
      语法:System.capabilities.hasAudioEncoder
      描述:属性;音频解码器的数组。其服务器字符串为AE。
      10.System.capabilities.screenColor
      语法:System.capabilities.screenColor
      描述:属性;指示屏幕的颜色是彩色(color)、灰度(gray)还是黑白(bw) 的。默认值为color。其服务器字符串为SC。
      11.Color
      语法:new Color(target)
      参数:target影片剪辑的实例名称。
      描述:构造函数;为由target参数指定的影片剪辑创建Color对象的实例。然后可使用该 Color对象的方法来更改整个目标影片剪辑的颜色。
      12._level
      语法:_levelN
      描述:属性;对_levelN的根影片时间轴的引用。你必须使用loadMovieNum动作将影片加载到Flash
      Player中以后,才可使用_level属性来定位这些影片。还可使用_levelN来定位由N所指定级别处的已加载影片。
      加载到Flash
      Player实例中的初始影片会自动加载到_level0。_level0中的影片为所有随后加载的影片设置帧频、背景色和帧大小。然后影片堆叠在处于_level0的影片之上的更高编号级别中。
      你必须为每个使用loadMovieNum动作加载到Flash
      Player中的影片分配一个级别。你可按任意顺序分配级别。如果你分配的级别(包括_level0)中已经包含SWF文件,则处于该级别的影片将被卸载并替换为新影片。
      13._parent
      语法:_parent.property
      _parent._parent.property
      描述:属性;指定或返回一个引用,该引用指向包含当前影片剪辑或对象的影片剪辑或对象。当前对象是包含引用_parent的动作脚本代码的对象。使用_parent来指定一个相对路径,该路径指向当前影片剪辑或对象上级的影片剪辑或对象。
      14._root
      语法:_root.movieClip
      _root.action
      _root.property
      描述:属性;指定或返回指向根影片时间轴的引用。如果影片有多个级别,则根影片时间轴位于包含当前正在执行脚本的级别上。指定_root与在当前级别内用斜杠记号(/)指定绝对路径的效果相同。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:46:53 |显示全部楼层

flash专栏

(三)客户端/服务器对象
      1.LoadVars
      语法:new LoadVars()
      描述:构造函数;创建LoadVars对象的实例。然后你可使用该LoadVars对象的方法来发送和加载数据。
      2.XML
      语法:new XML([source])
      参数:source为创建新的XML对象而进行分析的XML文本。
      描述:构造函数;创建一个新的XML对象。必须使用构造函数方法创建一个XML对象的实例之后,才能调用任何一个XML对象的方法。
      createElement与createTextNode方法是用于在XML文档树中创建元素和文本节点的“构造函数”方法。
      3.XMLSocket
      语法:new XMLSocket()
      描述:构造函数;创建一个新的XMLSocket对象。XMLSocket对象开始时未与任何服务器连接。必须调用XMLSocket.connect方法将该对象连接到服务器。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:47:30 |显示全部楼层

flash专栏

Flash MX中音乐的导入及词曲同步
      将音乐导入到Flash中并实现词曲同步是制作Flash
      MTV的基本功之一,但许多初学者由于不得要领,往往实现不了词曲同步,或者在操作过程中经常出现一些不该有的失误。其实只要你有足够的耐心,明白其中的奥秘,很快就可以上手,下面让我们来看一个简单的实例。
      音乐的导入
      ??Flash
      MX支持的音乐格式有WAV、MP3等,但由于音乐格式的文件一般比较大,所以大家在使用过程中一定要注意压缩。一般都选择MP3音乐,就是因为MP3是压缩效率很高的声音文件,它的导入过程如下:
      1.首先开启Flash,新建一个Flash文件,影片属性选默认设置即可,然后导入一幅图形文件作为背景图1。
      2.在层1上双击鼠标左键,将层1改名为“音乐”,然后单击“插入→新建组件”,将创建新符号的名称改为“music”,类别选中“电影片断”,按“确定”进入符号编辑窗口,单击“文件”菜单,选择“导入”命令,将选定的一首“情人.mp3”导入到“music”这个组件中。
      3.回到场景1中,按下“Ctrl+L”,打开库窗口,将“情人.mp3”拖入到场景1中,你将看到“音乐”层的第一帧,会出现一条线(一小段声波),此时还需注意将属性面板中的“同步”设置为“数据流”。
      4.将时间线下面的滚动条尽量向后拖动,在可以显示的最后一帧处按F5插入帧,这时时间线上出现了一条波浪线,采取同样的方法,测试该音乐文件共有多少帧图2。
      5.至此,我们就完成了音乐文件的导入工作。如果有的朋友只想要一半的音乐文件,可在声音的属性面板中单击“编辑”按钮,将右边的控制条拖动到适当位置即可。控制条后面的声音将不会被播放图3。
      歌词的输入
      导入音乐完成之后,剩下的就是输入歌词了,这是Flash中比较关键和繁琐的一步。下面我们做详细介绍。
      1.单击“插入层”按钮,增加层2,双击鼠标左键将它改名为“歌词”,然后选择该层的第一帧,按回车键测试每一句歌词的位置。当听到第一句歌词出现时,按下回车键,使其停止,按右键在此插入一个空白关键帧,同时在属性面板中,给“帧”处加一个标签,防止遗忘。此时,点击插入空白帧处会有一个小红旗的标志图4。
      2.用同样的方法给每句歌词所在的位置插入空白关键帧,同时在属性面板中加入帧标签。
      3.找到每句歌词所在的位置后,下面开始创建新符号,把歌词制作出来。单击“插入→新建组件”,取名“歌词一”,按“确定”进入符号编辑窗口,用文字工具输入“Girl
      每当我开始沉默的时候”,回到场景1,选中歌词层中的第一个标签处,按“Ctrl+L”,将歌词1拖至场景中的适当位置即可(如图5)。
      4.接着新建一个组件,取名歌词二,输入“你比我更难过”,在歌词层的第二个标签处将库中的第二句歌词拖入到场景中的适当位置。看明白了吗?其他的相信你一定会触类旁通,顺利地制作出来的。好了,按“Ctrl+回车”测试一下效果吧。
      以上介绍的都是Flash中最基本的操作步骤。如果你在熟悉它们的使用方法后,还可以试着在组件中做出诸如旋转文字、变形文字等特效,它会使你制作的Flash
      MTV字幕产生生动而有趣的效果,而不仅仅是欣赏一些呆板的文字。这就靠你自己的努力了。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:48:39 |显示全部楼层

flash专栏

Flash5 Action初体验──悠游水泡
      Flash5正式版已发布,想必不少人已接触过它。关于它的好处这里就不多说了。下面就随我来用Flash5编写一个水泡的Action程序吧。
      成品效果为在白底的320×240的区域内,只要鼠标一拖动就会拉出一串大小不一的水泡。水泡越浮越大,有些爆开了,有些就消失了。在下面的输入栏中可以调节水泡的数量和上浮速度。
      1.新建一个场景,底色为白色,宽和高分别为320和240,帧数就为默认的12帧。
      2.在工作区中画一个圆(大小不必在意,在Action中可以控制),打开Window/panels/Fill面版,填充刚才画好的圆,色彩只要看上去舒服,过渡自然就可以了。
      3.把圆的边框删除,选取菜单Insert/convert to
      symbol,在弹出的面板中,将Name设为Gnist1_graph,Behavior设为Movie
      Clip。完成后将这个组件从场景中删除,以后就能方便地从Liarbry中调用它了。
      4.在场景的左下角用字符工具(Character)在工作区中打上“Number”,换一行再打上“Speed”。
      5.然后在“Number”后面再次用字符工具打上“1”,换回箭头工具,选中字符框“1”,点击鼠标右键,并选择Panels下的Text
      Options,这时会弹出TextOptions的控制面版。在面板的最上方是一个面板tab,下面一行有个下拉箭头,我们点一下这个箭头并选择Input
      Text,然后我们在Variable的输入框中输入“m”来把变量名设为m。最后在Max
      Chars输入框中输入“2”把可输入的字符数限定在两个。接着就用同样的方法在“speed”后建立一个字符框,打上15,变量名为g,如图1(图)。
      6.新建一个Movie
      Clip组件,取名为crack。把先前做好的叫Gnist1_graph的组件从Liarbry中拖入这个新建的组件中,并用Modify/Break
      Apart命令把它打散。
      7.插入几个关键帧做出一个水泡爆裂的效果,只要像就可以了。别忘了在最后插入一空白关键帧,对它双击调出Action面板,在右边的输入框中写入removeMovieClip(“”),这句话的意思就是让组件把自己删除,也就是水泡爆裂后就自我删除(Flash5的Action面板需要拉宽,否则你是看不见右边的输入框的,点击右上角的箭头可以选择Nomal
      Mode或Expert Mode,一个是用mouse选择输入action,一个直接输入),如图2(图)。
      8.再新建一个Movie
      Clip组件,取名为Gnist1,把Gnist1_graph的组件拖入这个新建的组件中,鼠标右键单击Gnist1_graph,选择Panels下的Instance。在新弹出的面板中的Name一栏中输入“g”,这样就为组件
      Gnist1_graph取了个instance name 叫g。接着双击第一关键帧,写入Action如下:
      gg = /:g;?
      设变量gg为主场景下的变量g的值(就是那个deep的字符框)
      setProperty (“g”, _y,getproperty(“g”,_y)-gg); ?
      给MC g的Y坐标赋值为当前的Y坐标减去变量gg的值(现在就是减半15)
      setProperty (“g”, _alpha,getproperty(“g”, _alpha)-3); ?
      设置MC g的透明度为当前的透明度减3
      setProperty (“”, _xscale,(_xscale)+(random(3))); ?
      设置当前MC(即Gnist1)的x缩放为当前的x缩放随机加上0到3中的一个数
      setProperty (“”, _yscale,(_yscale)+(random(3))); ?
      照上句
      opx = getproperty(“g”,_x); ?
      设变量opx为MC g当前的X坐标
      opy = getproperty(“g”,_y); ?
      照上句
      a = getproperty(“g”,_alpha); ?
      照上句
      if (bo == random(8) and a<50 and (opxs+opys)>80)
      {如果变量bo等于0到8的九个数中随机产生的一个(如果bo为1的话就有1/9的机会条件成立),而且透明度小于50,x和y的缩放大于80就执行
      gotoAndPlay (4)
      跳至并播放第4帧
      }
      写完后在第二帧处插入关键帧,双击写入action如下:
      bo =“1”;
      设变量bo为1
      opxs = _xscale;?
      设变量opx为当前MC的x的缩放大小
      opys = _yscale;?
      照上句
      if (a<=0) { ?
      如果透明度小于0的条件成立,那么执行
      gotoAndStop (3); ?
      跳至并停于第3帧
      } else {?
      如条件不成立
      gotoAndPlay (1); ?
      跳至并播放第1帧
      }
      9.写完后在第三帧处插入空白关键帧并写入:removeMovieClip(“”);。之后我们就要把水泡爆裂的动画加入。在第四帧处插入关键帧,把叫crack的MC在此关键帧中拖入当前MC中,取instance
      name为w,双击关键帧写入Action如下:
      setProperty (“w”, _x, opx); ?
      setProperty (“w”, _y, opy); ?
      setProperty (“w”, _xscale, opxs); ?
      setProperty (“w”, _yscale, opys); ?
      setProperty (“w”, _alpha, a); ?
      (大家可以参照前面的解释理解)
      10.完成后在第四关键帧后第n-1个帧处插入一空白关键帧(n是叫crack的组件帧数,如果组件
      crack有5帧,那就该在第8帧处插入空白关键帧,如图3)。双击写入:
      removeMovieClip (“”);
      11.至此叫Gnist1的组件中的内容全部完成了,我们已有了个会越向上浮就越大,越透明,偶尔会爆裂的水泡。下面要做的就是让mouse能拖出一串水泡。
      12.新建一个组件,取名dg。在其中用字符工具输入bubble,颜色大小可根据自己的喜好而定,后面我们将用它来替换鼠标的样子。回到主场景中,新建一层,把叫dg的MC和名为Gnist1的MC都在新建层上拖入场景,分别取instance
      name为dg和gnist1。双击新建层的第一关键帧,写入action如下:
      startDrag (“dg”,true,0,240,320,0); ?
      开始拖动MC dg,锁在mouse中央,只能在x:0到320,y:0到240里拖动
      setProperty(“gnist1”,_visible,False); ?
      设置MC gnist1的可见性为不可见
      gx = getproperty(“dg”,_x); ?
      gy = getproperty(“dg”,_y); ?
      以上两句参照前面的解释
      if (gx<>gx1 or gy<>gy1){ ?
      判断mouse是否有移动,有就执行
      l = m;
      设变量l为m(就是number的字符框,现在是1)
      while (l>=0){ ?
      当l>=0成立时循环执行
      l = l-1;
      Scale = random(25)+5;
      setProperty (“/gnist1”, _x, getproperty(“dg”, _x)+random(3) -random(3); ?
      setProperty (“/gnist1”, _y, getproperty(“dg”, _y)+random(3) -random(3);?
      setProperty (“gnist1”, _visible, True); ?
      setProperty (“/gnist1”, _rotation, random(20)+1); ?
      setProperty (“/gnist1”, _xscale, Scale); ?
      setProperty (“/gnist1”, _yscale, Scale); ?
      n = n+1;
      以上参照先前的解释
      bn = “gnist1”&n;(或写为“gnist1”addn或“gnist1”+n)
      变量bn为gnist11,gnist12……gnist1n
      duplicateMovieClip (“gnist1”, bn, n); ?
      复制MC gnist1直到第n个
      }
      结束循环
      }?
      13.写完后在新建层的第二帧处插入关键帧,双击写入action如下:
      gx1 = getproperty(“dg”,_x); ?
      gy1 = getproperty(“dg”,_y); ?
      这是为了判断mouse而设的变量
      14.写完后回到旧的那层,双击那层的第一关键帧,写入:Mouse.hide();。这句话的作用就是隐藏鼠标。完成后按F5键增加一帧新帧,以求两层帧数相同。
      好了,大功告成。测试一下影片吧, 是不是很有意境啊!

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:51:13 |显示全部楼层

flash专栏

Flash大型动画贺卡制作例解  

      一、如何查看源代码
      这个动画中包含的物件,素材等都比较多,因此我们也特地把源代码提供给大家下载。这可是第一次提供大型动画源代码哟!源文件及SWF文件下载地址是:http://software.yesky.com/card.html。下载完成后先播放观看几遍ycard.swf,以加深对动画效果的认识。好了,现在运行你的Flash
      6,打开文件ycard.fla(别告诉我你还没当下来)同时建立一个新文件。我们根据这个动画源文件逐步讲述制作过程。切换至新文件,选择Modify(修改)菜单下的Movie(影片),在弹出的对话框中如下图进行设置(图2)。
      Forame
      Rate播放速度为每秒20帧(高一些的播放速度可以使动画更加流畅)。Width宽和Height高分别为500和400像素,设置完成按OK关闭。然后画两个黑色长方形遮在画面上下,产生宽银幕的遮边效果(看图1静止帧你就看得出来),并将遮边所在的层锁定,其他的动画元素所在的层都处于遮边层之下。
      二、动画开场
      基本工作完成后我们开始编辑动画。切换至ycard.fla,先看Loading部分,是背景不断变换,这是用两张图片不断交替隐现产生的。按“Ctrl+L”打开Library库面板,在其中的序幕文件夹中有一个背景循环的Movie
      Clip影片夹子,在它上面点右键选择Edit进行编辑,进入背景循环工作区,我们看它的Timeline时间线(图3)。
      可以看到,这个隐现过程包含两个层,上下两层其实是一个图片,只是做了一个反转,然后设置上层第一帧为显现,第十五帧透明度为“0”隐藏,设置Motion变化。产生一个渐隐效果,而下层正好相反,产生渐现感。这个红色背景是导入的位图文件,它在Library面板序幕文件夹的红色背景Graphic图形物件中。在必要时可以进入其工作区选择File菜单下的Import导入新图将其换掉,注意保持大小一致。
      返回主场景,在Loading部分画面中间还有一个《电脑报》的Logo(标志),它位于Library面板“序幕”文件夹的祝贺Logo
      Graphic物件内,可以在其上点右键选择Edit进入工作区。Library是Flash中非常重要的一个工具面板,我们制作动画时所有的元素,包括声音、图片、文字等都存放在Library中,可以用“Ctrl+L”快捷方式打开。OK!接下来还有一个Loading...的文字,是一个MovieClip,在Library中的名字是loading,过后有一个Complete提示,在主场景的Loading完成层中,进行黑白颜色变换产生闪动。我们看主场景Timeline,在Loading层的5、6、9、10帧上分别有简单的Actions,设置它们循环,当影片装载完成后跳至完成提示。Loading完成的18帧同样有一个
      Actions,功能为Stop,因为动画是要用按钮进行播放的。Play按钮在Library按钮文件夹中。同时注意,按钮层处于黑色遮边层之上,不然显示不到,我们设置它的Actions为gotoAndPlay19。
      三、闪烁效果
      这是动画的开场部分,你可以按照你的素材进行编辑,或者你比较懒,直接把源文件的素材替换掉就可以了。我们接着让动画开始播放。下面的动画有不断的闪动反转片效果,看起来炫,其实很简单。我们来看白色闪光那一层(图4)。
      创建一个Graphic物件,然后在里面画一个白色矩形,拖入场景内并调整大小直至遮住整个画面,然后设置闪动效果。如图中的Timeline设置,透明度由0快速过渡到100不透明,然后再过渡至透明,接着65透明度跳跃至0,40跳跃至0,这样效果就出来了。自己动手试试,不过不要闪得太厉害,小心眼睛:
      注意:随着第一次白色闪动完成,背景已经换掉了。思考一下,当白色闪至不透明时,将新的背景放入场景,当白色闪烁过渡至透明,新的背景也逐渐显现了。新背景出现后开始闪烁,还有反转片的效果,那其实是两张相同的图,一张在
      Photoshop中做了色彩反相处理(图5)。
      在背景的变换过程中,始终穿插着文字的闪烁。文字是一个Graphic物件,位于Library面板的文字中。依然通过快速变化实现闪烁效果,并依次闪烁出C、P、C、W。这里就一个小技巧,我们可以把所有文字放在一个Graphic中,每帧一个文字。拖入场景,这样文字会随着Timeline的播放而变化,而我们需要出现某个特定文字的时候,可以用到Instance面板(快捷方式
      “Ctrl+I”例如P字母处于文字符号的第二帧。那么我们设置Instance面板为Single Frame单帧模式。First为2(图6)。
      影片继续播放,出现《电脑报》文字以及网址,使用简单的隐现效果。然后进入到下一个画面:小编拜年标题部分。背景也相应切换至一个有中国传统风格的图形,它位于Library面板的“传统红色”物件内。接着掉下来一个报社的红色Logo。你可以在Library序幕中的“祝贺Logo”中找到。做法非常简单。先把我们已经做好的文字放进去,然后用矩形工具画一个正方形,填充为红色,再用铅笔画一些黄色的小点,通过旋转工具做成动画中的形状。有兴趣画一个自己的Logo放进去。接着会有“小编大拜年”这几个造型字。在Library的“传统文字”中,你可以根据自己的想法修改。这个文字的绘制方法也很简单,先画一个黑色圆形,再输入文字“小”,选择一种有书法感的字体,如果你的系统中没有一样的字体也没关系,选一种近似的就可以,设置为土黄色。“编”的做法一样。下面“大拜年”这三个字使用了描边,先输入文字,“Ctrl+B”将其打散。通过墨水瓶工具做一个黄色描边,即可完成。
      四、绘制鞭炮
      下面出现的两串鞭炮比较费工夫。要先用工具栏中的画图工具画出一个鞭炮的形状,填色备用(图7)。
      按照图7的步骤画出鞭炮,最后记住使用渐变工具多试几次红色渐变,直到满意为止。接着要制作鞭炮动画了,一长串鞭炮噼里啪啦慢慢放完,这个工作没有捷径,只能发扬“钉子精神”,一点一点手工完成,方法是这样的,先在Insert菜单New
      Symbol下建立一个Movie
      Clip影片夹子,然后把刚才画好的鞭炮物件从Library面板拖进来,使用“旋转”工具调整倾斜度,再拖进来一个鞭炮,调整倾斜度,一直这样排列完成整串鞭炮。不要着急,要有耐心。这才刚开始呢!
      耐着性子终于做好鞭炮后,我们准备点燃鞭炮了。建立一个新层,画两个爆炸后的火花,因为两个火花不够表现效果,而都画在同一层的话又容易出现粘连,因此建立新层来画,做完之后调整好位置。接下来是燃放过程,依然要发挥一下刚才的“钉子精神”,在鞭炮层内隔两三帧插入一个关键帧,然后从最底部删除一两个鞭炮,调整火花位置,依次插入关键帧,删除鞭炮,调整火花位置直到这串鞭炮放完。真是麻烦,还不如到楼下商店买串真的一放多省事(图8)。
      五、图片的扫描效果
      现在我们回到主场景,从Library面板把鞭炮动画拖入场景,左右各一串,左边的那串小一点,调整好位置。动画中两串鞭炮是从上面一前一后甩下来的,因此我们要做一个简单的Motion来达到效果。先将鞭炮放在场景上方,然后空十几帧插入一个关键侦,再将鞭炮移动到要出现的位置,设置好Motion运动,鞭炮从顶部甩下来的效果就出来了。鞭炮放完后转场进入场景2,我们可以点击Timeline右上角的Edit
      Scene按钮在两个场景之间切换(图9)。
      进入场景2。也就是我们这个动画的主要内容区域,《电脑报》各个版块编辑照片,老编故事以及贺词等都会在这里出现。内容多多,大家快来吧。在这里古朴的背景经过闪动被一个科技背景所取代,这个背景图在Library照片文件夹“科技背景”内(你可以直接弄张图替换它)。接着便是各大版块的编辑开始亮相,我们设计了一种扫描效果,扫描完成后照片逐渐显现(图10)。
      我们来看下这个效果的实现方法。首先,场景中出现一个照片外轮廓的扫描线。这是一个Mask效果,先画一个矩形方框至合适位置,删除中间的填充只保留边线部分。这个是轮廓边线层,接着建立一个新层处于它之下,做一个矩形渐变填充,并进行Shape边画,从左边移动至右边(图11)。
      移动完成后在边线层点右键选择Mask,测试,无效果,这是因为在Flash中Line的对象不能进行Mask操作,需要先将其转换为Fill模式。我们选中边线,在Modify修改菜单下的Shape形状子项里选择Convert
      Line to
      Fill命令将边线转换为Fill模式,再次测试,完成效果。接着还有轮廓内部的两次扫描动作。同样是一个Mask效果,因为我们只需要让这个扫描效果出现在边框线内部,因此做一个矩形,调整大小和位置与边框线内大小相同。用同样方法制作一个渐变填充的运动。这次在填充上要有一定要求,因为扫描尾部是逐渐隐没的,因此需要进行一次白色至透明的渐变填充。从Windows菜单Panels下打开Fill面板,选择左边的填充滑杆,然后打开Mixer面板,将Alpha透明度设置为“0”(图12)。
      设置好以后对这个透明渐变进行Shape移动操作,这次从左移动至右边后还要再次移动回来,这样才完成一个扫描循环,给照片出场铺路。OK,完成以后该出现照片了,照片有一个独立的层,以渐显的方式出现。从现在起出现的9张照片及版块介绍模式都一样,因此我们把照片放在一个独立的Graphic中,每帧一张照片,这样我们在切换照片的时候就可以通过前面学习的技巧用Instance面板来指定。因为位置与大小的关系,照片的尺寸最好要保持一致,这样才能保证不错位。
      接下来出现的是各版块的名称和祝词,跟制作照片的方法一样,做到一个Graphic中,用Instance面板来控制该出现哪个。同时你肯定注意到了,背景图也在不断闪动,其中包含前面提到的白色闪动,还有就是颜色会不断地变化。这是用Effect面板的Advanced高级色彩进行调整(图13)。
      Flash中的这个功能非常强大,不仅可以调整透明度,还可以对每种单色的比率数值进行精确调整,通过它,我们就可以对背景图片产生非常多的色彩效果。
      照片依次介绍完成之后就是老编故事。随着一阵笑声,老编出场(他有“伪善”的笑容,“狠毒”的心肠,让小编们整天“提心吊胆”,所以我们使用黑色的背景衬托出那种气氛),照片和文字的出现上使用简单的Motion透明渐现渐隐。通过照片配以文字的方式刻画出老编的形象,最后以一句:“会吗?小编天真地想!”结束。如果大家的贺卡也有这种场景的需要,嘿嘿,换张照片肯定经典。
      六、影片收尾
      随后礼花炸开出现电脑报的字样,至此动画基本播放完成,进行收尾工作,传统图案的背景逐渐出现,放出一张全体编辑的合影,旁边缓慢地出现上滚的贺词。由于要让贺词只在出现的地方滚动,因此我们还要做最后一个Mask,先做好祝贺文字的Graphic物件,然后建立一个MovieClip用来实现文字滚动,在第一层内画一个矩形,它是文字需要出现的区域,注意大小。然后建立新层,使它处于矩形层之下,将贺词放进来做一个缓慢向上移动的Motion,过渡帧越多,移动越慢。然后在矩形层名称区点右键选择Mask,滚动文字创建完成,将它放入场景中。动画制作基本结束(图14)。
      此外,还要做一个重复播放的按钮,创建一个按钮,起名Replay,将其放到左下角位置,设置Actions跳转并播放场景一的第一帧。代码如下。
      on (release) {
      gotoAndPlay ("Scene 1", 1):
      }
      至此,动画基本完成,接下来的工作就是要给动画加上音乐,我们动画中的背景音乐一共分四段,第一段在开场部分,第二段在照片展示部分,第三段是老编故事的吓人音乐,最后是结束后贺词的背景音乐。同时场景中还有一些事件声音(比如鞭炮什么的)。
      七、添加音效
      好,现在我们来看看动画中的音乐是如何配进去的。回到场景一从头开始。打开Library面板可以在Sound文件夹中找到我们导入的一些音效。这里的音效大部分来自闪盟在线(http://www.flashsun.com)。在场景一的背景音乐层中第20帧是我们插入的音乐,因为前面是Loading部分,装载完后会停下来,当我们点了Play按钮以后动画正式播放,背景音乐也跟着响了起来。接着在Layer
      33的第149帧我们放了一个物体掉在地上的声音,刚好配合小编的“小”字掉下来。紧跟着大拜年三个字落下,因此在层Layer32的176帧插入了一个物体砸下的声音。在层Layer
      30和Layer
      31帧配合鞭炮我们特地找到了鞭炮爆炸的效果加进去。这样场景一的配音完毕,我们跳转至场景二中。随着几下闪动,切换至有科技色彩的背景中,我们挑选轻快节奏的音乐开始播放。注意听,它的声音是由小至大开始的。这里,我们用到了Flash中的声音渐现Fade
      in(图15)。
      我们在Sound面板的Effect项中选择Fade
      in来实现。由于这段音乐播放时间有限,而我们的动画又比较长,因此在Loops循环项中我们设置了6次循环。背景音乐完成后开始配合照片扫描的效果音乐,大家可以听到,当照片边线闪烁的时候有一个电流的声音,我们把他加在了Layer36的第70帧,照片边线闪烁的时候。在后面的动画中,照片会依次出现,因此我们这个音效要依次加到每张照片的边线闪烁里。
      完成后照片内部同样还要扫描两次,我们挑选了扫描的声音,并准备在Layer 35出现两次,在后面的照片中以同样的方式出现(图16)。
      后面,老编出场时Layer
      38的1223帧配上背景音乐,跟着笑声在层“怪笑”的第1236帧响起来。礼花部分配合了爆炸的声音。最后,动画结束的时候要响起结束的背景音乐。我们把它放在最后一帧,同时设置一个Stop停止操作,不然播放完后会自动跳转从头播放。
      提示:如何调整更换的素材尺寸
      不过在替换时注意与原素材的尺寸位置,如果不一致的话有可能出现错位。这里还有一个小的技巧。选择Windows菜单Panels下的info面板(图17)。在这个面板里你可以看到,选中任何一个物件,在面板上就会出现相应的宽高与坐标位置,我们可以用这个工具以像素级精度进行物件的大小及位置调整,如果你要替换素材的话,这个面板起到的作用很大,它可以调节物体的大小、位置等,最起码比瞪大双眼用鼠标一点点拖动轻松得多。
      提示:如何替换Library中的图片
      按“Ctrl+B”打开Library库面板,在照片文件夹的科技背景Graphic物件上点右键选择编辑进入它的工作区。先建立一个新层,用File菜单的Import命令导入一张替换新图片,完成后我们需要将新图片的大小与位置与原来的素材保持一致(要做到一丝不差,不然的话在动画中会出现错位)。
      现在教大家如何精确调整新图与原图的大小。使用info面板,选择原图,在info面板中出现了相关数据,我们得到W宽183;H高124;X坐标-91.5,Y坐标-62。得到这些数据后记下来,再选择新图,把刚才得到的原图的数据填进去。这样,两张图片的大小和位置就绝对一致了。
      如何替换Library中的声音
      声音的替换相对简单些,将你准备的声音导入后,它会出现在Library面板中,然后我们在需要替换的位置建立新层插入关键帧,将声音拖进来并把原来的声音层删掉就可以了。

136

主题

9

好友

29万

积分

版主

Member

Rank: 27Rank: 27Rank: 27

发表于 2003-9-30 21:52:08 |显示全部楼层

flash专栏

Flash动画片制作完全分解──绘制素材 
      动画实例情节介绍:
      QQ、Q妹妹、多多与汉良是好朋友。一天,汉良请QQ帮他送一封信给Q妹妹。在经历一段惊险的旅程后,QQ见到Q妹妹,谁知汉良的信是一封情书,而Q妹妹又误会是QQ送给她的……
      实例制作:
      每一部动画都离不开素材,在还没有展开情节之前你的素材将给浏览者第一印象。因此绘制精良的素材对于成功的作品来说是至关重要的。Flash
      MX是一款矢量动画制作工具,我们可以方便地利用它内置的Pen Tool与Pencil
      Tool绘制可以自由缩放而不失真的矢量图形,而且生成的文件尺寸相当袖珍,非常利于网上发布。
      如果你实在对自己的美术功底没有信心或者想省事的话,Flash也可以让你由外部导入已经画好的矢量图(File→Import),你只需在其基础上稍做修改即可。你可以到http://www.flashsun.com或http://www.flash8.com下载本例所需的矢量图片。但我还是强烈建议你练习一下手绘,毕竟这是Flash的基础,也是Flash精华所在。因此我们应当针对其特点准备矢量的素材,当然适当地使用位图可以满足一些特殊的需要,增加视觉效果,我们应当根据需要进行选择,但是在一般情况下,都应当以矢量为主。
      由于篇幅的限制,我不可能完整地向你介绍所有动画元件的绘制。在这里我们以绘制动画中一个元件“鱼”为例来进行讲解。
      步骤1:
      打开Flash
      MX,使用菜单命令File→New新建一个文件,使用菜命令Modify→Document打开属性设置对话框,设置动画的尺寸为高像素,宽像素,背景色为黑色(图1)。
      步骤2:
      使用菜单命令Insert Symbol新建movie clip元件,命名为“鱼”。在工具栏中选择Pencil
      Tool,点击下方Option区域中的按钮,在弹出的下拉菜单中选择Ink
      Mode(图2),拖动鼠标开始绘制鱼的头部,并由这些绘制出的曲线闭合生成图形外框(图3)。
      步骤3:
      当你觉得画出的曲线不尽如人意时,可以选择Arrow工具并将鼠标移动到要修改的曲线边缘,这时在鼠标箭头下方将出现一个小圆弧图标。拖动鼠标,曲线就会跟随你鼠标的运动变形,你可调整曲线位置与弧度直至满意为止。
      步骤4:
      下面我们使用Pen Tool来绘制鱼的身体部分。在工具栏上选择Pen
      Tool,在工作区内点击鼠标左键并移动鼠标至下一个节点位置单击,不要松开鼠标。拖动它,你会发现在两点间自动生成一条曲线且随鼠标移动而改变弧度。松开鼠标后在曲线的两端各有一个节点,你可以在曲线上单击以增加节点数目(图4)。
      步骤5:
      我们还可以在工具栏上选择Subselection
      Tool进行进一步的编辑。鼠标单击一个节点,在节点处出现两个可拉伸的调节柄,拉动它们可以改变曲线形状。重复以上的操作就可以画出动画造型的轮廓。
      以上操作比较复杂,希望大家多加练习。
      步骤6:
      使用菜单命令Insert→Layer,新建一层Layer 2,这一层上将使用画圆工具(Oval Tool)给鱼画上眼睛。在工具栏上选择Oval
      Tool,在下方的Option区域中设置填充色(Fill Color)为白色,边框色(Stroke
      Color)为黑色(图5),绘制一个椭圆。再使用Oval
Tool绘制一个填充色为黑色的,比刚才绘制椭圆略小的正圆,并使之位于椭圆的中心位置(图6)。
      步骤7:
      鼠标左键单击时间轴上的Layer 2,这样可以将这一层上的所有元件全部选中。使用工具栏上的Transform
      Tool并将它旋转一定角度就可以适当做一些变形,最后的效果如图所示(图7)。
      步骤8:
      在绘制好鱼的轮廓后,我们可以开始给造型填充颜色。注意:在Flash中Fill工具只能对闭合区域进行填充,所以一定要确保你的曲线是闭合的,你可以调整显示比例来进行检查。当有要填充的区域未完全闭合时,可以使用Arrow
      Tool拖动曲线使之闭合。
      步骤9:
      在工具栏上选择填充工具(Fill Tool),在工作区域右侧的Color
      Mixer面板上设置填充的方式,单击填充图标后的下拉框,弹出下拉菜单。solid是单色填充,liner gradient是线性渐变填充,radial
      gradient是辐射渐变填充,bitmap是使用位图进行填充(图8)。你可以根据自己的需要选择填充方式与颜色。最后填充完毕的完整鱼元件效果如(图9)所示。
      步骤10:
      为了详细讲述Flash MX填充的一个重点:渐变填充,我们再以元件“气泡”的制作为例进行说明。新建一个Movie
      Clip命名为“气泡”,在工具栏上选择画圆工具,设置填充色为黑色,边框色为无,按住键盘的Shift键绘制一个正圆。
      步骤11:
      鼠标单击正圆,在工作区域右侧的Color Mixer面板设置填充方式为Radial Gradient模式。我们看到在Color
      Mixer面板上出现一个颜色控制条,在控制条的任意位置单击鼠标以添加颜色。如果需要删除一种颜色,使用鼠标拖动此色块到控制条外即可。如图所示设置好渐变颜色(图10),选择填充工具进行填充。
      步骤12:
      在工具栏上选择Fill Transform
      Tool,此工具可以控制渐变填充色彩的渐变中心位置与范围(图11)。我们看到圆上出现一个黑色圆环,使用鼠标拖动圆环可改变渐变中心点的位置,拉动圆环上控制点可以调整渐变填充的范围,最后的设置与效果如图(图12)。
      好了,我们已经学习了使用Flash MX手绘动画素材的技巧。Flash
      MX拥有很强大的矢量绘图功能,而且通过以上的学习你会发现这一切不是非常复杂。要想真正熟练掌握这些工具与技巧,只有多多动手加以练习。因此,请自行动手绘制动画所需的其他元件,相信你一定会有所收获。
     本连载教程作品示范地址:http://qqflash.tencent.com/cgi-bin/qqflash/show.cgi?id=295
您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|人教网 ( 京ICP备05019902号

GMT+8, 2018-2-25 17:22

回顶部