flash网络音乐播放器.doc_第1页
flash网络音乐播放器.doc_第2页
flash网络音乐播放器.doc_第3页
flash网络音乐播放器.doc_第4页
flash网络音乐播放器.doc_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

音频播放 知识点归纳总结。回放控制:SoundChannel1.position 属性。2.SoundChannel相当于一个容器,可多次存入声音。而Sound却不能重复载入。但是,声音会叠加播放。所以再存入新的之前,要把原来的声音先停止。3.播放。Sound.play()方法可以返回一个SoundChannel对象。把Sound.play()返回的对象,放入SoundChannel类变量里是有必要的,是为了能通过对可控变量对声音进行控制。4.暂停。当SoundChannel对象调用Stop() 方法时,它的position值(该声音中播放头的当前位置)就是指向当前播放所停止的位置,不会归零。5.循环。对于SoundChannel 对象,播放一次完,就自动停止了。所以要借助侦听 这个对象所特有的事件soundComplete 。在书写时。可以如下两种方法dd.addEventListener(Event.SOUND_COMPLETE,func)dd.addEventListener(“soundComplete”,func)6. leftPeak : Number read-only 左声道的当前幅度(音量),范围从 0(静音)至 1(最大幅度)。rightPeak : Number read-only 右声道的当前幅度(音量),范围从 0(静音)至 1(最大幅度)。以上两个属性,都是只读的,所以不能通过他们来变换音量。“当前幅度”,这个或许可以用来制作波形。因为它输出的时歌曲在当前某声道音量幅度的高低,歌曲进入安静阶段时返回的数值是0,进入高亢时返回的数值就比较高,跟音量大小没关系。音效控制:SoundTransform通过SoundTransform对象完成。主要利用它以下几个属性。.pan:Number(范围是 -11,0时,左右声道音量均最大且相等。关系如图 .volume:Number(范围0-1).leftToRight,rightToLeft,leftToLeft,rightToRight(范围0-1)使用的方法要注意,是先申请一个SoundTransform()类的变量对象。通过改变这个变量的以上属性。再覆盖回(赋值),SoundChannel的soundTransform属性。对SoundChannel的soundTransform属性直接修改的做法是无效的。Var d:SoundTransform=new SoundTransform();Var dd:SoundChannel=Sound1.play();d.pan=0.5;dd.soundTransform=d;关于鼠标的事件和属性1.常见的几个事件2.上述几个鼠标事件几乎都有的属性除了currentTarget是对事件承载者(如下代码中,就是a,就是使用侦听器的人)的调用。其余的属性可以说都是在鼠标事件发生时所产生的属性,以供调用。例:让在使用事件侦听器的 对象发生变化。 例:让某原件的坐标 变换到鼠标单击处。 3.mouseX mouseY 当前鼠标的坐标。从被批注的代码看,是顺序执行的。如果添加进了ENTER_FRAME事件的侦听,那歌曲就播放两次。两个动态文本在屏幕上沿给定的XY轴 跟随鼠标做单坐标跟随移动。注意一点:用代码创建的显示对象,一定要addChild(),否则不会被显示。如果只写,var menu:Array则会提示TypeError: Error #1009: 无法访问空对象引用的属性或方法。at _fla:MainTimeline/_fla:frame1() 。说明二者还是有区别的。音乐播放器制作过程遇到的问题。这个是对一个sound类进行载入的结果。因为这段模拟单击的代码是被“ENTER_FRAME”不断侦听的,所以每侦听一次完就要添加一个ifChange=false 改变回去。一面重复加载。/说明,数组关键看所存储的元素是什么类型的,可以用点语法直接进行调用的。也可以直接代表URLRequest。/我在舞台放置了5个影片剪辑实例,第一帧脚本:var i:int=0var len:int=this.numChildrenfor(i;ilen;i+)/根据索引得到影片剪辑实例var mc:MovieClip=this.getChildAt(i)/输出影片剪辑实例的实例名trace()可以总是以下错误报告1118: 属于 static 类型flash.display:DisplayObject的值的隐式强制指令的目标可能是非相关类型 flash.display:MovieClip。这是怎么回事啊!这样可以解决,转换。制作旋转3D菜单。1.关于坐标的问题。如果一个容器a内还有影片剪辑b或者其他的原件,并且b在影片中的坐标已经调为0,0。将a放入场景内某个坐标(100,200)。此时通过代码改变a内b的坐标a.b.x=20 ,则此时b的坐标变化是相对a内原点位置的变化,与父级a在场景中的位置无关。/调用方式改变后,为什么变成这样?/While(i-) 对于整体,i- 取的是i的值。执行完之后i=i-1setChildIndex的使用setChildIndex (容器内对象object,深度值)setChildIndex常用有以下几种:置顶:容器.setChildIndex(对象A,容器.numChildren);置底:容器.setChildIndex(对象A,0);插入对象B的前面:容器.setChildIndex(对象A,容器.getChildIndex(对象B);插入对象B的后面:容器.setChildIndex(对象A,容器.getChildIndex(对象B)-1);关于深度的管理可以再去多学习一些。/数组如何 依据自身所包含的内容(例如就是存放一组数字的),进行排序。怎么表示自身内容? 而非通过调用数组内元素的共有属性。/menu.addEventListener(Event.ENTER_FRAME,moveMenu)/单击完图标,开始运行moveMenuinitAngle(true)/调用initAngle函数对于上述情况,是不是等对moveMenu调用完毕了才会继续执行 initAngle?如果moveMenu是个无限调用呢?/NUMERIC是为升序排列的。/3D菜单制作过程中的几点问题。1.对于一些变量,一定要注意初值的给定,因为有的变量是没给定初值的。例如Number不给定初值,误认为是0,而直接被调用就会出错。2.思考一个问题,为什么给定三十的时候。速度会加快那么多。if (Math.abs(speed-Angle)1) menu.removeEventListener(Event.ENTER_FRAME ,moveMenu);initAngle(false); 因为少了后面减速阶段,所以视觉效果上会感觉比较快。3.利用数组的方法进行排序的问题。哪几个常用的方法,以及他们的使用方法。4.关于以下两段程序中的问题。for (var i:int; iiconNum; i+) var mc:MovieClip = new IconMovie();menu.addChild(mc);mc.addEventListener(MouseEvent.MOUSE_DOWN ,startRotate); 难道变量不是重名了么?当同一父级下的显示实例的实例名称重复时。电脑会将该名字给 深度最大的一个。也就是表面上是允许实例名称重复名字的。而上述就是在重复创建显示实例到一个容器中。变量的重名是针对在同一作用域内不可以重名。当往一个数组中存放名字重复的变量也是可以的。for (var j:int; jiconNum; j+) var mc:MovieClip =MovieClip(menu.getChildAt (j);分明只是申请新变量,并赋值。如何就能改变了原先的变量属性呢?mc.gotoAndStop(j+1);mc.angle=angle*j+tempAngle+speed;mc.x=cosA(mc.angle)*disx;mc.y=sinA(mc.angle)*disy; 参考该代码,可知。如果是对于Object类型的数据,将其赋值后到同类型对象后,只是多了个对数据的引用名字而已,调用改变的其实是同一份数据内容。而一般的变量则会变成共同引用的情况。有点类似于把一个影片剪辑拖放到场景内,然后复制成好几个。再起上不同的变量名。而实际上,若再以鼠标操作 去改变其中一个的显示内容。则全部的影片内容都随之改变。 以代码去改变则不同5.为什么换成把mc.addEventListener(MouseEvent.MOUSE_DOWN,startRoatation); 侦听的事件改为单击,SWF在运行一段事件后会失效?6.修改完initAngle()函数之后。放置在moveMenu中和放置在 startRatation 产生的不一样的效果是为什么。想想逻辑关系.5.关于深度管理的一些问题。(Index索引,child子级)重点在于:1.一些函数的记忆和使用。此次实例用到的,父级.setChildIndex(子级对象,深度)。(下一层子级,电脑只认为下一层的才算子级。舞台下的唯一子级是时间轴。其他元件在放在舞台中的时候,实际上是时间轴下的子级。)getChildIndex返回深度值。父级.getChildIndex(子级实例名称)getChildAt 通过深度来调用显示实例。removeChildAt() 通过深度值来移除显示实例。this.numChildren 返回所含显示实例的个数。(不仅包含肉眼看到的,例如内容为空的sprite也算。)swapChilAt()通过当前深度值索引进行深度交换。swapChildren()通过实例引用进行深度交换。addChildAt()在指定的深度位置添加显示实例。2.对深度管理规则的了解。深度越深,意味着越靠前,在上方。深度可以理解成显示实例的显示层次,深度越大,

温馨提示

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

最新文档

评论

0/150

提交评论