《Actionscript应用》PPT课件.ppt

上传人:za****8 文档编号:15183020 上传时间:2020-08-05 格式:PPT 页数:79 大小:296.50KB
收藏 版权申诉 举报 下载
《Actionscript应用》PPT课件.ppt_第1页
第1页 / 共79页
《Actionscript应用》PPT课件.ppt_第2页
第2页 / 共79页
《Actionscript应用》PPT课件.ppt_第3页
第3页 / 共79页
资源描述:

《《Actionscript应用》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Actionscript应用》PPT课件.ppt(79页珍藏版)》请在装配图网上搜索。

1、Actionscript应用,刘锡冬,AS3.0小知识,一)舞台和时间轴。从AS3开始,舞台和时间轴有了全新的解释。1.舞台:它是显示Flash元素的平台。2.主时间轴:用来控制Flash元素的显示。3.显示对象:指的是Flash中一切可以看见的元素,如图形,按钮,电影剪辑,文本,连舞台也是。4.AS3中的舞台是放置显示对象的最终容器,因此显示对象只有放在舞台上才可视。5.舞台和时间轴都是影片剪辑实例,因此每次打开Flash时系统就已经创建了这两个实例。6.舞台是顶级容器,包含了主时间轴,而主时间轴又包含了一切。 二)trace函数;从as3开始,trace支持逗号分开,如trace(ball

2、,apple and banana,taste good)。,三)变量;1.变量和舞台一样,也是容器,比如冰箱里有食品,那么可以理解为: 冰箱 = 食品。2.公式:变量名 = 数据,其中= 是赋值运算符,顺序是从右至左,表示把=右边的数据赋予左边的变量名。3.变量合法化:从as3开始,定义变量必须加上关键字“var”,这很重要。 四)属性;AS3中,像“_属性名 ”已不复存在,都去掉前下划线变为“属性”,如_root变为root等。 五)类的管理;as3中的舞台和时间轴都是由类来管理,比如,管理舞台的类叫Stage类,管理主时间轴的类叫MainTimeline类. root是由MainTime

3、line类创建的对象。,五)play()命令无效;比如有个mc的补间动画,在它第一帧写下stop(),接着在主时间轴写下mc.play(),测试发现mc没动!这个问题与代码的执行顺序有关,Flash规定先执行主时间轴mc.play代码,再执行影片实例中stop()代码,因此刚刚play就stop了.只要在主时间轴第二帧写下mc.play()就OK,而不要写在第一帧。这是帧循环的结果。 六)this关键字;this关键字是对当前对象的引用,例如在主时间轴中this就指的是主时间轴(this = root),在电影剪辑中this就指的是电影剪辑(this = MovieClip)。,七)不能用Mo

4、vieClip类的属性名和方法名;在时间轴上写代码时,不能用MovieClip类的属性名和方法名作为变量名。例如play,stop,x,y等等,像var x就是错的。 八)函数;as3中删除了很多全局函数,stop()不再是全局函数,而是方法,即stop() = this.stop()。,1、play 作用:可以指定动画继续播放。 在播放电影时,除非另外指定,否则从第1帧播放。如果动画播放进程被gotoAndStop语句停止,则必须使用play语句才能重新播放。该命令无参数,直接使用,例如:play(); 2、stop 作用:停止当前播放的电影,该动作最常见的运用是使用按钮控制电影剪辑。 例如

5、,如果需要某个动画在播放完毕后停止而不是循环播放,则可以在动画的最后一帧附加stop()动作。该命令无参数,直接使用,例如:stop();,动作脚本基本命令:时间轴控制命令(MovieClip类),举例:对影片剪辑进行控制(1.fla),/控制两个影片剪辑的播放和停止 blueball1.stop(); redball1.stop(); b_btn.addEventListener(MouseEvent.CLICK,bluemovie); function bluemovie(e:MouseEvent) redball1. stop(); blueball1.play(); r_btn.add

6、EventListener(MouseEvent.CLICK,redmovie); function redmovie(e:MouseEvent) redball1.play(); blueball1.stop(); 提问:希望每个球的运动都从起点开始?,快进和后退,3、nextFrame 作用:跳至下一帧并停止播放。 该命令无参数,直接使用, 例如: nextFrame(); 4、prevFrame 作用:跳至前一帧并停止播放。 该命令无参数,直接使用, 例如:prevFrame();,举例(2.fla),mymc.stop(); fastB.addEventListener(MouseEv

7、ent.CLICK,fastmovie); function fastmovie(event:MouseEvent) mymc.nextFrame(); preB.addEventListener(MouseEvent.CLICK,premovie); function premovie(event:MouseEvent) mymc.prevFrame();,5.gotoAndPlay 形式:gotoAndPlay( frame,scene ); 作用:跳转并播放,跳转到指定场景的指定帧,并从该帧开始播放,如果没有指定场景,则将跳转到当前场景的指定帧。 参数:scene,跳转至场景的名称或编号

8、;frame,跳转至帧的名称或帧数。,举例(3.fla),stop(); nex_btn.addEventListener(MouseEvent.CLICK,nextscene); function nextscene(event:MouseEvent) this.gotoAndStop(1,场景 2);,中间要有空格,this 是表示当前对象的特殊名称,帧标签的概念,在帧的属性栏里可以输入帧标签,使用了帧标签可以用gotoAndPlay等等语句来播放该帧标签所开始的位置。用帧标签的好处是你无需理会关键帧的数值,在任何地方播放这段动画,都可以含义明了的操作,并且容易解读和记忆。 例如: mym

9、ov.gotoAndPlay(”end”);,6、gotoAndStop 形式:gotoAndStop( frame,scene ); 作用:跳转并停止播放,跳转到指定场景的指定帧并从该帧停止播放,如果没有指定场景,则将跳转到当前场景的指定帧。 参数:scene,跳转至场景的名称或编号;frame,跳转至帧的名称或数字。 例如:动画跳转到场景2第1帧并停止播放: gotoAndStop( 1 , 场景 2);,课本案例: 2 (改进).fla,pic.stop(); i=1; function prevmovie(event:MouseEvent):void pic.gotoAndStop(i

10、=i-5); prev_button.addEventListener(MouseEvent.CLICK,prevmovie); function nextmovie(event:MouseEvent):void pic.gotoAndStop(i=i+5); next_button.addEventListener(MouseEvent.CLICK,nextmovie); 提问if,7、nextScene 作用:跳至下一个场景的第1帧并停止播放。如果目前的场景是最后一个场景,则会跳至第1个场景的第1帧。 该命令无参数,直接使用,例如:nextScene(); 8、prevScene 作用:跳

11、至前一个场景并停止播放。如果目前的场景是第1个场景,则会跳至最后一个场景的第1帧。 该命令无参数,直接使用,例如:prevScene();,动画中声音的停止,补充:stopAll 作用:使当前播放的所有声音停止播放,但是不停止动画的播放。该命令无参数,直接使用,注意:调用该函数必须同时指定“SoundMixer”类别,例如:SoundMixer.stopAll();,案例:添加音乐控制按钮.fla,也可以按钮控制,例如用于引导页或者应用程序的声音控制。,1.鼠标双击事件,使用双击,有两个关键的地方 一是需要先确保doubleClickEnabled是打开状态,默认状态为关闭。btn.doubl

12、eClickEnabled = true ; 二是检查鼠标的可用性. btn.mouseEnabled默认状态下值为true.如添加btn.mouseEnabled = false ; 按钮将失效,当然双击也无法使用了。,案例doubleclk.fla,btn.doubleClickEnabled=true; btn.addEventListener(MouseEvent.DOUBLE_CLICK,stopmovie); function stopmovie(event:MouseEvent) mymc.stop();,键盘的控制,键盘输入经常要获取按钮编码,可以使用以下两个属性: keybo

13、ardEvent.charCode; keyboardEvent.keyCode; 这两个属性的区别在于,后者检查的是键盘上按下的键,而前者检查的是实际输入的字符。例如,输入“X”和“x”,由于两个字符不同,所以“keyboardEvent.charCode”的结果不同,但是由于它们用的是同一个按键,所以他们的“keyboardEvent.keyCode”结果相同。,charCode属性记录了按下的键的字符编号,也就是ASCII码。每个字符都对应一个ASCII码。,keyCode属性记录了按下的键控代码值。,用户定义的对象名,键盘响应事件,键盘事件的处理简单一些,只需要监听和响应键盘事件。 键

14、盘事件侦听器捕获整个舞台的键盘输入,即直接使用stage来做为侦听对象 。也可以为舞台上的特定显示对象编写事件侦听器;当对象具有焦点时将触发该事件侦听器。,案例,stage.addEventListener(KeyboardEvent.KEY_DOWN,isDown); function isDown(e:KeyboardEvent) if(e.keyCode=Keyboard.LEFT) trace(left key is pressed!); ,KeyboardEvent是flash.event包中的类。在响应用户的键盘输入操作时,Flash Player 将调度 KeyboardEven

15、t 对象。 有两种类型的键盘事件:KeyboardEvent.KEY_DOWN 和 KeyboardEvent.KEY_UP,Keyboard 是flash.ui包中的类。该类用于构建用户可使用标准键盘控制的界面。 Keyboard 类的属性是一些常数,这些常数表示控制游戏时最常用的键。,案例:方向键控制小游戏(上下左右),stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyboardEvent); function onKeyboardEvent(event:KeyboardEvent):void if (event.keyCode=Keyb

16、oard.LEFT) box.x-= 10; if(event.keyCode=Keyboard.RIGHT) box.x+= 10; if(event.keyCode=Keyboard.DOWN) box.y+= 10; if(event.keyCode=Keyboard.UP) box.y-= 10; ,上机问题,2.fla的影片剪辑元件的控制 Doubleclick 键盘控制,颜色案例:设置颜色,每个显示对象都有 transform 属性,(它是 Transform 类的实例),还包含有关应用到显示对象的各种变形的信息(如旋转、缩放或位置的更改等)。除了有关几何变形的信息之外,Trans

17、form 类还包括 colorTransform 属性,它是 ColorTransform 类的实例,并提供访问来对显示对象进行颜色调整。,要访问显示对象的颜色信息,可以使用如下代码: var colorInfo:ColorTransform = myDisplayObject .transform.colorTransform; 创建 ColorTransform 实例后,可以通过设置属性值来更改显示对象的颜色。要在进行任何更改后更新显示对象,必须将ColorTransform 实例重新分配给 transform.colorTransform 属性。 例如: var colorInfo:Co

18、lorTransform = myDisplayObject .transform.colorTransform; / 。此处进行某些颜色转换。 myDisplayObject.transform.colorTransform = colorInfo; / 提交更改,案例:color.fla,btn_1.addEventListener(MouseEvent.CLICK,changc1); function changc1(e:MouseEvent) var color1:ColorTransform=car.transform.colorTransform; color1.color=0 x

19、FF9900; car.transform.colorTransform=color1; btn_2.addEventListener(MouseEvent.CLICK,changc2); function changc2(e:MouseEvent) var color:ColorTransform=new ColorTransform(); color.color=0 xFF9999; car.transform.colorTransform=color; ,相似案例:服装网站,两种创建ColorTransform类的对象的方法。,建立网站链接:navigateToURL命令,形式:navi

20、gateToURL(URL,目标); 作用:将指定的URL的文件加载到浏览器窗口中,或是将变量传递到指定URL的应用程序中。 _blank,在新窗口显示目标网页 _self,在当前窗口显示目标网页 _parent,框架网页中当前整个窗口位置显示目标网页 _top,框架网页中在上部窗口中显示目标网页 例如,在新打开的浏览器窗口中打开指定的网站: var myURL:URLRequest = new URLRequest(http:/ /“,”_blank”); navigateToURL(myURL); 或者navigateToURL (new URLRequest(“,单击按钮导航到一个 UR

21、L。 /linkButton 是该按钮的实例名称: linkButton.addEventListener(MouseEvent.CLICK, gotoAdobeSite); function gotoAdobeSite(event:MouseEvent):void var adobeURL:URLRequest = new URLRequest( navigateToURL(adobeURL); ,案例:学院网站制作,站内链接 站外链接,拖曳鼠标移动startDrag()和stopDrag(),移动显示对象的一个常见理由是要创建拖放交互组件,这样当用户单击某个对象时,在松开鼠标按键之前,该对

22、象会随着鼠标的移动而移动。 使用两个鼠标事件:按下鼠标按键时,通知对象跟随鼠标光标-调用要拖动的显示对象的 startDrag() 方法;松开鼠标按键时,通知对象停止跟随鼠标光标-调用 stopDrag() 方法。,startDrag( 参数1:Boolean=false,参数2:Rectangle=null)开始拖曳鼠标 参数1 指定是将可拖动的 Sprite 锁定到鼠标位置中央 (true),还是锁定到用户首次单击该 Sprite 时所在的点上 ;参数2 指定 Sprite 的约束矩形。 用法: mov.startDrag(true);/鼠标在影片剪辑的原点位置。 stopDrag();/

23、停止拖曳鼠标,无参数,举例:拖曳鼠标.fla,Mouse.hide(); Mouse.show();系统鼠标对象的显示与隐藏属性。,/改变系统鼠标外观,mov为实例名 mov.startDrag(true); Mouse.hide();,mov.addEventListener(MouseEvent.MOUSE_DOWN,downpic); function downpic(e:MouseEvent) mov.gotoAndStop(2); mov.addEventListener(MouseEvent.MOUSE_UP,uppic); function uppic(e:MouseEvent)

24、 mov.gotoAndStop(1);,载入外部图像与动画,若要加载外部图像和动画文件,ActionScript 需要执行以下 4 个操作: 用文件的 URL 创建一个新的 URLRequest 对象。 创建一个新的 Loader 对象。 调用 Loader 对象的 load() 方法,并以参数形式传递 URLRequest 实例。 对显示对象容器(如 Flash 文档的主时间轴)调用 addChild() 方法,将 Loader 实例添加到显示列表中。 var request:URLRequest=new URLRequest(“*.jpg”); var loader:Loader=new

25、 Loader(); loader.load(request); addChild(loader); /创建loader实例,提供一个容器,利用addChild()方法把外部对象添加到可视化列表中,从而显示,案例:载入外部文件,var request:URLRequest=new URLRequest(“coolpic.jpg”); var request1:URLRequest=new URLRequest(“coolmovie.swf”); var loader:Loader=new Loader(); var loader1:Loader=new Loader(); pic_button

26、.addEventListener(MouseEvent.MOUSE_DOWN,loadpic); function loadpic(event:MouseEvent) loader.load(request); mov.addChild(loader); swf_button. addEventListener(MouseEvent.MOUSE_DOWN,loadswf); function loadswf(event:MouseEvent) loader1.load(request1); mov.addChild(loader1);,如何删除显示对象?,removeChild() 和 re

27、moveChildAt() 方法可以从容器的子级列表中删除显示对象实例。 d_btn.addEventListener(MouseEvent.CLICK,delpic); function delpic(e:MouseEvent) movie.removeChild(loader); movie.removeChild(loader1); /如果没有全部载入,该方法不完善,fscommand命令,制作完成的Flash影片通常都是在Flash播放器中播放的。fscommand命令可以实现对影片浏览器(Flash Player)的控制。 语法格式如下: fscommand(命令,参数); 包含两个

28、参数项,一个是可以执行的命令(双引号引起来),另一个是执行命令的参数。,浏览器控制命令与显示输出命令,以服装网站文件为例,并非表中所列的全部命令在所有应用程序中都可用: 这些命令在 Web 播放器中都不可用。 所有这些命令在独立的应用程序(例如,放映文件)中都可用。 只有 allowscale 和 exec 在测试影片播放器中可用。,课本案例分析:fscommand函数影片ab,Flash player9中创建播放器生成exe文件 如果使用 exec 命令调用应用程序,该应用程序必须位于名为 fscommand 的子目录中。 exec 命令只在 Flash 放映文件内起作用。,影片a中的脚本,

29、b_btn.addEventListener(MouseEvent.CLICK,bmovie); function bmovie(e:MouseEvent) fscommand(exec,b.exe); q_btn.addEventListener(MouseEvent.CLICK,qmovie); function qmovie(e:MouseEvent) fscommand(quit); ,全屏播放的另一种方法,stage.displayState = StageDisplayState.FULL_SCREEN; 要退出全屏模式,请将 displayState 属性设置为 StageDis

30、playState.NORMAL: 测试时无效,文本数据的处理,Flash的交互实际上是指人和程序之间的数据输入和输出过程:输入的内容,可以是触发事件,例如鼠标单击按钮,也可以是各种数据,例如输入字符串、数字等,这就需要“输入文本”,而输出的数据,则可以使用“动态文本”进行显示。 动态文本与输入文本可以被看成是特殊的元件,在舞台上创建出来的每个动态文本,都是元件的实例。如果希望控制动态文本和输入文本的属性,就必须设置他的名称。如my_txt,在时间轴上选中要添加as的帧,打开动作面板, My_txt.text=“I am a text!”; My_txt.textColor=0 x6600ff

31、; My_txt.alpha=0.9; My_txt.scaleX=1; My_txt.scaleY=1.5;,案例:看图识字,Mouse.hide(); hand_mc.startDrag(true); cow_mc.addEventListener(MouseEvent.CLICK,over); function over(me:MouseEvent) name_txt.text = 牛; cow_mc.addEventListener(MouseEvent.MOUSE_OUT,out); function out(me:MouseEvent) name_txt.text = ; pig_

32、mc.addEventListener(MouseEvent.CLICK,over1); function over1(me:MouseEvent) name_txt.text = 猪; pig_mc.addEventListener(MouseEvent.MOUSE_OUT,out1); function out1(me:MouseEvent) name_txt.text = ;,mouse_mc.addEventListener(MouseEvent.CLICK,over3); function over3(e:MouseEvent) name_txt.text = 老鼠; mouse_m

33、c.addEventListener(MouseEvent.MOUSE_OUT,out3); function out3(e:MouseEvent) name_txt.text = ; tiger_mc.addEventListener(MouseEvent.CLICK,over4); function over4(e:MouseEvent) name_txt.text = 老虎; tiger_mc.addEventListener(MouseEvent.MOUSE_OUT,out4); function out4(e:MouseEvent) name_txt.text = ; ,案例:圆柱体

34、的体积,count_btn.addEventListener(MouseEvent.CLICK,count); function count(event:Event) var r = parseFloat(r_txt.text); var h = parseFloat(h_txt.text); var v = Math.PI*r*r*h; v_txt.text = String(Math.round(v*1000)/1000); erase_btn.addEventListener(MouseEvent.CLICK,erase); function erase(event:Event) r_t

35、xt.text= h_txt.text= v_txt.text = ; ,loading下载动画,framesloaded:MovieClip类的属性,表示影片加载的帧数 totalframes:MovieClip类的属性,表示动画的全部帧数 bytesLoaded: URLLoader类的属性,表示在侦听器处理事件时加载的总字节数。 bytesTotal: URLLoader类的属性,表示获取要加载的内容的字节数。,简单loading下载动画,if(framesLoaded=totalFrames) gotoAndPlay(3); else gotoAndPlay(1); /也可以写成mc1

36、.framesLoaded等。,精确下载,addChild(mytext); loaderInfo.addEventListener(ProgressEvent.PROGRESS,showProgress); function showProgress(event:ProgressEvent) var p:Number=event.bytesLoaded/event.bytesTotal; var n:Number=Math.round(p*100); mytext.text=n.toString()+%; myload.gotoAndPlay(n.toString(); ,ProgressE

37、vent.PROGRESS 是ProgressEvent 对象的进程事件。该对象通常在将 SWF 文件、图像或数据加载到 Flash Player 中时生成。 bytesLoaded、 bytesTotal都是它的属性,文件开始加载后就创建了 LoaderInfo 对象。,影片剪辑元件基本属性,坐标: Flash场景中的每个对象都有它的坐标,坐标值以像素为单位。Flash场景的左上角为坐标原点,它的坐标位置为(0,0)。Flash默认的场景大小为550400像素,即场景右下角的坐标为(550,400),场景中的每一点分别用x和y表示x坐标值属性和y坐标值属性。如果影片剪辑在其它影片剪辑的时间轴

38、中,则以其中心位置为(0,0),向右和向下为正,并逐渐增加,向左和向上为负,并逐渐减小。,例如,要在主时间轴上表示场景中的影片剪辑myMC的位置属性,区分下面两种方法: myMC.x this.x; myMC.y this.y; 通过更改x和y属性可以在影片播放时改变影片剪辑的位置。 this关键字是对当前对象的引用,例如在主时间轴中this就指的是主时间轴(this = root),在电影剪辑中this就指的是电影剪辑(this = MovieClip)。,尺寸控制,尺寸控制有两种方法:一种是“绝对尺寸控制”,就是设定对象的高度和宽度是多少像素,另一种是“相对尺寸控制”,就是设定对象的高度和

39、宽度是原来的多少倍。 绝对尺寸控制一般使用属性“width”设置影片剪辑元件的绝对宽度,“height”设置影片剪辑的绝对高度,单位都是像素,并且值都不能为负。 【案例:轻轻的我走来】。,案例:轻轻的我走来,this.addEventListener(Event.ENTER_FRAME,moveGirl); function moveGirl(e:Event) if (girl.y200) girlc.height += girl.height/100; girl.width += girl.width/100; girl.y += girl.height/100; elsegirl_mc.s

40、top(); 帧循环ENTER_FRAME事件能够控制代码跟随Flash的帧频播放,在每次刷新屏幕时改变显示对象。 使用该事件时,需要把该事件代码写入事件侦听函数中,然后在每次刷新屏幕时,都会调用Event. ENTER_FRAME事件,从而实现动画效果。如果主时间轴中只有一帧,且不论它是否在该帧停止,该帧中的影片剪辑都会不断触发enterFrame事件,且触发的频率与Flash影片的帧频一致。,相对尺寸控制,相对尺寸控制是指在影片剪辑水平和垂直方向上进行缩放的倍数,属性“scaleX”和“scaleY”的值代表了相对于库中原影片剪辑的横向尺寸width和纵向尺寸height的百分比,而与场景

41、中影片剪辑实例的尺寸无关。 scaleX、scaleY属性值为数值,属性值1即缩放比率为100%(原始大小)。影片剪辑元件缩放默认的注册点坐标位置是(0,0)。 【案例:我变大了】。,案例:我变大了,e_mc.addEventListener(mouseOver,bigMc); t_mc.addEventListener(mouseOver,bigMc); m_mc.addEventListener(mouseOver,bigMc); function bigMc(e:MouseEvent) e.target.scaleX = 2; e.target.scaleY = 2; e.target.

42、play(); e_mc.addEventListener(click,smMc); t_mc.addEventListener(click,smMc); m_mc.addEventListener(click,smMc); function smMc(e:MouseEvent) e.target.scaleX = 1; e.target.scaleY = 1; ,事件目标,可以为e_mc,t_mc,m_mc,鼠标位置,表示鼠标光标的坐标属性的关键字是mouseX和mouseY。 如果这两个关键字用在主时间轴中,则它们表示鼠标光标相对于主场景的坐标位置;如果这两个关键字用在影片剪辑中,则它们表

43、示鼠标光标相对于该影片剪辑的坐标位置。mouseX和mouseY属性都是从对象的坐标原点开始计算的,即在主时间轴中代表光标与左上角之间的距离;在影片剪辑中代表光标与影片剪辑中心之间的距离。 如将场景大小设置为550400,在正常播放时能获得的鼠标位置即在(0,0)-(550,400)之间;如果缩放播放窗口,将视当前播放窗口的大小而定;如果进行全屏播放,则与显示器的像素尺寸有关。,案例:狮子王,stage.addEventListener(MouseEvent.MOUSE_MOVE,mouse_move); function mouse_move(me:MouseEvent) x_txt.tex

44、t = mouseX; y_txt.text = mouseY; stage.addEventListener(MouseEvent.MOUSE_DOWN,yes); function yes(event:MouseEvent) my_mc.startDrag(true); stage.addEventListener(MouseEvent.MOUSE_UP,no); function no(event:MouseEvent) my_mc.stopDrag();,rotation,rotation属性是显示对象绕轴点顺时针旋转的角度。0180度表示顺时针旋转角度,0-180度表示逆时针旋转角度

45、。如果超过了这个范围,则自动减去360的整数倍。以影片剪辑的中心点为旋转中心点。,案例:宇航员特训(随机旋转),btn.addEventListener(MouseEvent.CLICK,mymy); function mymy(event:MouseEvent) sheep.rotation=Math.random()*360; ,var mytext:TextField=new TextField(); mytext.text=I am a sheep!; mytext.textColor=0 xffffff; mytext.x=150; mytext.y=250; mytext.scal

46、eX=3; mytext.scaleY=3; addChild(mytext);,visible,visible属性即可见性,使用布尔值,即为true,或者为false。为true表示影片剪辑可见,即显示影片剪辑;为false表示影片剪辑不可见,隐藏影片剪辑。 例如要隐藏影片剪辑myMC: myMC. visible = false;,alpha,alpha(透明度)是区别于visible的另一个属性, alpha决定了影片剪辑的透明程度,它的范围在0-1之间,0代表完全透明,1表示不透明。 例如要将影片剪辑myMC的透明度设为50%: myMC.alpha = 0.5; alpha属性代表了

47、第4种颜色通道,即所谓的alpha通道。R、G、B3种颜色通道决定像素的颜色成份,alpha通道决定像素的透明程度。在计算机中,每种颜色通道都用8 bit(位)来存储,所以如果一幅图像是32位的,那么它就拥有所有的这4个通道;如果一幅图像是24位的,则它就只有R、G、B这3个通道。,可以在脚本中设置按钮的alpha属性,特别要注意的是,将按钮的alpha属性设置为0,虽然按钮不可见,但是它的热区同样存在,仍然可以对它进行单击等操作;如果要将按钮变为不可用,可以将其visible属性设置为false。,指定背景颜色,属性“opaqueBackground”用于控制影片剪辑元件的背景颜色,例如:

48、my_mc. opaqueBackground = 0 xccccff; 让影片剪辑元件出现浅蓝色背景。 如果要去掉背景色,可以使用下面语句: my_mc. opaqueBackground = null; “null”在AS中表示“空值”,既然背景颜色是空值,那么就不会出现背景颜色。,复制影片剪辑,先构造要复制对象的实例,然后再使用addChild复制该对象的实例。 语法结构: 影片剪辑对象. addChild(对象) 其中(对象)是使用new函数所创建的实体对象。 举例: myObj = new Object(); my_mc.addChild (myObj); /新建对象“myObj”并

49、复制到影片剪辑“my_mc”,课本案例:枫叶下落,如何将影片剪辑元件转换为自定义类? 右键“链接”为AS导出,输入类名。,课本案例:枫叶下落,for (var i:uint=Math.random();i20; i+) var b:fengye=new fengye();/类名就是刚刚在库中元件的类名 b.x=Math.random()*600;/x轴位置 b.y=Math.random()*450;/y轴位置 b.scaleX=Math.random();/x轴方向的比例大小 b.scaleY=b.scaleX;/x、y轴方向等比例缩放大小 addChild(b);/添加它到场景中 ,改进:

50、雪花飘落方法一,第一帧:var snowNum = 0; 第二帧: var newSnow:snow =new snow(); newSnow.x = Math.random() * 360; newSnow.y = Math.random() * 20; newSnow.rotation = Math.random() * 360; newSnow.scaleX = Math.random() * 10 ; newSnow.scaleY = newSnow.scaleX; newSnow.alpha = Math.random() ; +snowNum; addChild(newSnow);

51、 第三帧:if (snowNum 120) gotoAndPlay(2);else stop ();,方法二:,var snowNum = 0; addEventListener(Event.ENTER_FRAME,mysnow); function mysnow(event:Event) if (snowNum 120) var newSnow:snow =new snow(); newSnow.x = Math.random() * 360; newSnow.y = Math.random() * 20; newSnow.rotation = Math.random() * 360; ne

52、wSnow.scaleX = Math.random() * 10 ; newSnow.scaleY = newSnow.scaleX; newSnow.alpha = Math.random() ; +snowNum; addChild(newSnow); ,补充:随机改变MC的颜色,var transform:ColorTransform =new ColorTransform(); transform.color=uint(Math.random()*0 xffffff); newSnow.transform.colorTransform=transform; /改变颜色,声音的控制 1

53、、构造声音对象,语法:Sound对象名称:Sound = new Sound(声音文件); Sound类为Media组件中的类,声音文件为URLRequest类型参数 例如:mysound:Sound = new Sound( new URLRequest(“test.mp3”); /构造“my_sound”声音对象并加载外部声音文件test.mp3。 SoundChannel和 SoundTransform 二个类用于控制向计算机扬声器输出声音音量等属性,在使用前也必须先构造,例如: my_soundChannel:SoundChannel = new SoundChannel (); my

54、_soundTransform:SoundTransform = new SoundTransform ();,2、加载声音文件,语法:Sound对象名称.load(声音文件); load方法可将指定的声音文件加载到Sound对象中,load方法针对的是外部的声音文件,所以必须使用URLRequest类对象来转换文件来源字符串成为加载文件的目标路径。 例如:my_sound.load(new URLRequest(“test.mp3”); 将声音文件“test.mp3”加载到“my_sound”对象中,声音文件“test.mp3”与SWF文件的所在位置相同(相同路径下)。 my_sound.l

55、oad(new URLRequest (“ 将声音文件“test.mp3”加载到“my_sound”对象中,声音文件“test.mp3”与SWF文件的所在位置不同,位于Internet网络中。,3、声音文件的播放与关闭,语法: Sound对象名称.play(开始播放时间位置,重复播放次数,SoundTransform对象); Sound对象名称.close(); 当使用load方法让声音对象完成加载声音文件且没有错误发生后,可调用play方法开始播放声音文件,调用play方法但没有给定任何参数时,声音文件将从头开始播放1次,调用play方法也可给定参数来指定从何处开始播放、播放的次数。 调用c

56、lose方法会关闭音频数据流,所有已加载的数据将全部清除,此时声音对象将成为一个空对象。例如: my_sound.close(); 关闭音频数据流,清除所有已加载的数据。,播放音乐脚本,var mysound:Sound=new Sound(new URLRequest(笨小孩.mp3); this.addEventListener(enterFrame,playsong); function playsong(e:Event) mysound.play();,4、取得声音已播放的时间,语法:SoundChannel对象.position; Sound对象名称.length position属

57、性值为声音已播放的经过时间,属性值的单位为毫秒。当声音被回放,则position属性值会在每次回放的开头被重设为0。如果要得知声音的可播放长度(声音的持续时间),可通过Sound声音对象的length属性。 NT = Math.floor(my_soundchannel.position/100)/10; 取得声音已播放的经过时间换算成含小数点一位数的秒数并存入变量“NT”,“my_soundChannel”为一个SoundChannel对象。 NT = Math.floor(my_channel.position/1000); myM = Math.floor(NT / 60); myS =

58、 Math.floor(NT % 60); trace(声音已播放: + myM + 分 + myS + 秒;) 取得声音已播放的经过时间换算成分、秒并显示。 NT = Math.floor(my_sound.length/1000); 取得声音可播放总长度时间换算成秒数变存入变量“NL”, “my_sound”为一个Sound对象。,5、设置/取得左右声音的声音变化(平衡),语法:SoundTransform对象.leftToLeft SoundTransform对象.leftToRight SoundTransform对象.rightToLeft SoundTransform对象.righ

59、tToRight leftToLeft属性是设置或取得左声道输出分配多少给左边的喇叭,leftToRight属性是设置或取得左声道输出分配多少给右边的喇叭,rightToLeft属性是设置或取得右声道输出分配多少给左边的喇叭,rightToRight属性是设置或取得右声道输出分配多少给右边的喇叭,以下四个属性适用范围于控制“立体声”的左右声道,属性值都是介于0到1之间的数值。例如: mySoundTransform. leftToLeft=0; 设置左声道分配0输出给左边的嗽叭。 myOut= mySoundTransform. leftToRight; 取得左声道分配给右边喇叭的输出值并存放

60、变量“myOut”。,6、设置/取得播放声音文件的音量,语法:SoundTransform对象.volume volume属性用于设置/取得播放文件的音量,其属性值代表音量准位的数字(由0到1),1是最大音量,0则是静音。 myNum=mySoundTransform.volume; 取得目前播放声音文件的音量值并存入变量“myNum”。 mySoundTransform.volume =1; 设置目前播放声音文件的音量值为1,最大音量。,7、设置/取得左右声道的音量平衡,语法:SoundTransform对象.pan pan属性控制了SWF文件当前和之后的声音的左右平衡,它决定声音在左右声道(喇叭)的播放方式或是哪一个嗽叭(左或右)要播放声音,主要适用于单声道。其属性值域用于指定声音左右平衡,有效范围介于-1到1之间,其中-1表示只使用左声道,1表示只使用右声道,而0则表示平衡两个声道间的声音。 myNum = mySoundTransform.pan; 取得目前播放声音文件的音量平衡值并存入变量“myNum”。 mySoundTransform.pan =1; 设置目前播放声音文件只有右声道有声音。 mySoundTransform.pan = myNum; 设置目前播放声音文件的左右声道平衡由变量“myNum”的值来决定。,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!