




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用Flash来制作一个Flash播放器一、实现背景仔细研究一下各个播放器的实现方法,其实原理是大同小异的,都是用Flash来实现,只是有的实现还利用了Java Script跟Flash的通讯,通过网页来控制Flash的播放。最简单的实现方法是,在Flash中先用Load Movie函数将影片导入场景中,使用Movie Clip相应的函数,如play,gotoAndStop,stop,nextFrame,prevFrame等等,就可以实现播放器的大概功能了。不过,想要将播放器做的比较通用,在制作过程中还是有点复杂,再加上考虑播放影片的质量控制、场景的缩放、fps的计算、Flash与Java Script的通讯等等因素,就更加复杂了。下面我们通过一个例子来看看具体的实现。(PS:flash)二、实现步骤我们先来制作一个被控制的目标影片,然后再制作播放器的主体部分。1、新建一个Flash文件,按Ctrl + F8建立一个Movie Clip,命名为“Sample Movie Graphic”,在此Clip的场景中绘制如图1所示的图样。2、再按Ctrl + F8建立一个Movie Clip,命名为“Sample Movie”,将上一步所制作的Clip拖到Sample Movie的场景中,在时间轴的第345帧上面插入关键帧,并用工具条中的缩放工具,将第345帧上面的Sample Movie Graphic旋转一定的角度。在Sample Movie的第一帧和第345帧的Action面板上面增加如下语句:stop(); 点击选取此Clip时间轴上面的第一帧,设置此帧的属性面板如图2所示。这一步是制作一个旋转的效果。3、将Sample Movie从图库拖到影片的场景中,并在属性面板上面命名为“movie”。4、以上制作的是被控制的目标影片,也可以用Load Movie函数来动态导入,原理是先建一个空的Clip,将要播放的影片导入到此Clip中即可。5、接下来我们制作播放器的主体。按Ctrl + F8新建立一个Movie Clip,命名为“scrubberTimeLineGraphic”。在此Clip的场景中用矩形工具绘制一个长方形。这是播放器的时间轴6、按Ctrl + F8新建立一个Movie Clip,命名为“scrubberTimeLineHandleGraphic”。在此Clip的场景中用矩形工具绘制一小块长方形。按Ctrl + F8新建立一个Button,命名为“scrub b TimeLineHandle”,并将scrubberTimeLineHandleGraphic Clip拖到此Button的场景中。再按Ctrl + F8新建立一个Movie Clip,命名为“scrubberTimeLineHandle”,将scrub b TimeLineHandle Button拖到此Clip的场景中,并在scrub b TimeLineHandle Button的Action面板上面增加如下语句: on (press) _root.scrubber.stopMovie(_root.scrubTarget) /注释1_root.scrubTimeLineHandle = scrub; /注释2this.startDrag(true, 0, _parent.timeLine._y, _parent.timeLine._width - this._width, _parent.timeLine._y); /注释3on (release, releaseOutside) /注释4_root.scrubTimeLineHandle = zero;this.stopDrag();if (_root.scrubTargetState = play) /注释5_root.scrubber.playMovie(_root.scrubTarget) else _root.scrubber.stopMovie(_root.scrubTarget)注释1:调用帧里面的函数,停止播放影片。注释2:设置变量。注释3:定位时间滑块的位置。注释4:当在时间滑块外边释放鼠标的时候触发此响应函数。注释5:设置播放的状态。7、第六步是制作播放器的时间滑块,请注意在Clip之间的层次。8、按Ctrl + F8新建立一个Button,命名为“scrub b drag”,在此Button中绘制一个表示移动的箭头。9、按Ctrl + F8新建立一个Movie Clip,命名为“scrubShadeOpenGraphic”,在此Clip的场景中绘制一个表示播放器张开的箭头。按Ctrl + F8新建立一个Movie Clip,命名为“scrubShadeClosedGraphic”,在此Clip的场景中绘制一个表示播放器合上的箭头。按Ctrl + F8新建立一个Button,命名为“scrub b shadeToggle”,在此Button时间轴中的Hit里面绘制一个小正方形,并在其他帧里面插入空白关键帧。10、按Ctrl + F8新建立一个Movie Clip,命名为“scrub b shade 2”,将scrubShadeClosedGraphic Clip拖到此Clip的场景中,设置此帧的标签为“open”,并在此帧的Action面板上面增加如下语句:_root.scrubShadeState=open_root.scrubber.buttonRow._y = 0stop()注释:展开播放器。11、在scrub b shade 2 Clip的第二帧上面插入空白关键帧,将此帧的标签设置为“closed”,并在此帧的Action面板上面增加如下语句:_root.scrubShadeState=closed_root.scrubber.buttonRow._y = _root.scrubber.buttonRow._height*-1stop()注释:合上播放器。12、在scrub b shade 2 Clip的时间轴上面插入一个新的层,将scrub b shadeToggle Button拖到此层的场景上面,并在此Button的Action面板上面增加如下语句:on(press)if(_root.scrubShadeState=open)gotoAndStop(closed)elsegotoAndStop(open)注释:根据变量,设置相应的状态13、按Ctrl + F8新建立一个Movie Clip,命名为“scrubFlipSwitchGraphic”。在scrubFlipSwitchGraphic这个Clip的场景中,绘制一个长方形。14、按Ctrl + F8新建立一个Movie Clip,命名为“scrubFlipSwitch”。将scrubFlipSwitchGraphic Clip拖到此帧的场景中,将帧标签设置为“off”,并在此帧的Action面板上面增加如下语句:stop()15、在scrubFlipSwitch Clip的时间轴的第二帧上面,插入一个关键帧,将帧标签设置为“on”,并在此帧的Action面板上面增加如下语句:stop()16、在scrubFlipSwitch Clip的第二帧场景中的Clip的Action面板上面增加如下语句:onClipEvent (enterFrame) _root.scrubber.scrubEngine(_root.scrubTarget, _root.scrubSpeed);注释:上面这些语句等于是整个播放器的引擎。17、分别用Ctrl + F8新建立六个Button,依次在Button的场景里面绘制“跳到最前”、“后退”、“停止”、“播放”、“前进”、“跳到最后”的箭头。18、按Ctrl + F8新建立一个Movie Clip,命名为“scrub button row”。将scrubFlipSwitch Clip拖到此Clip的场景中,命名为“flipSwitch”,在scrub button row Clip的场景里面用文本框拉两个文本输入框,设置属性分别如图3和图4所示。将第17步绘制的六个箭头拖到scrub button row Clip的场景里面,在“跳到最前” 箭头的Action面板上面增加如下语句:on (press) _root.scrubber.begin(_root.scrubTarget, 1);注释:调用帧函数里面的“跳到最前”函数。在“后退” 箭头的Action面板上面增加如下语句:on (press) _root.scrubDirection = reverse;_root.scrubber.buttonRow.flipSwitch.gotoAndStop(on);on (release, releaseOutside) _root.scrubber.buttonRow.flipSwitch.gotoAndStop(off);注释:调用帧函数里面的“后退”函数在“停止” 箭头的Action面板上面增加如下语句: on (press) _root.scrubber.stopMovie(_root.scrubTarget);_root.scrubTargetState = stop;注释:调用帧函数里面的“停止”函数。在“播放” 箭头的Action面板上面增加如下语句:on (press) _root.scrubber.playMovie(_root.scrubTarget);_root.scrubTargetState = play;注释:调用帧函数里面的“播放”函数。在“前进” 箭头的Action面板上面增加如下语句:on (press) _root.scrubDirection = forward;_root.scrubber.buttonRow.flipSwitch.gotoAndStop(on);on (release, releaseOutside) _root.scrubber.buttonRow.flipSwitch.gotoAndStop(off);注释:调用帧函数里面的“前进”函数。在“跳到最后” 箭头的Action面板上面增加如下语句on (press) _root.scrubber.end(_root.scrubTarget);注释:调用帧函数里面的“跳到最后”函数。19、按Ctrl + F8新建立一个Movie Clip,命名为“control”。将scrubFlipSwitch Clip从图库拖到control Clip的场景中,命名为“buttonRow”。将时间滑块scrubberTimeLineHandle Clip从图库拖到control Clip的场景中,命名为“handle”,并在scrubberTimeLineHandle Clip的Action面板上面增加如下语句:onClipEvent (enterFrame) _root.scrubCurrentFrame = _root.scrubber.currentFrame(_root.scrubTarget)if (_root.scrubTimeLineHandle = scrub) _root.scrubber.scrubHandle(_root.scrubTarget); else _root.scrubber.scrubHandlePlay(_root.scrubTarget);20、将缩放的箭头scrub b shade 2 Clip从图库拖到control Clip的场景中。将移动的箭头scrub b drag从图库拖到control Clip的场景中,并在scrub b drag Clip的Action面板上面增加如下语句:on (press) this.startDrag();on (release, releaseOutside) this.stopDrag();21、在control Clip的时间轴上面插入一个新的层,将时间轴scrubberTimeLineGraphic Clip拖到此帧的场景中,命名为“timeLine”,在帧的Action面板上面插入如下语句: function end (setTarget, frame) /注释1setTarget.gotoAndStop(setTarget._totalframes);_root.scrubTargetState = stop;function begin (setTarget, frame) /注释2setTarget.gotoAndStop(frame);_root.scrubTargetState = stop;function stopMovie (setTarget) /注释3setTarget.stop();function playMovie (setTarget) /注释4setTarget.play();function scrubHandlePlay (setTarget) /注释5_root.scrubber.handle._x = (_root.scrubber.timeLine._width-_root.scrubber.handle._width)*(setTarget._currentFrame/setTarget._totalFrames);function scrubHandle (setTarget) /注释6setTarget.gotoAndStop(int(setTarget._totalFrames*(_root.scrubber.handle._x/(_root.scrubber.timeLine._width-_root.scrubber.handle._width);function currentFrame (setTarget) /注释7return setTarget._currentFrame function scrubEngine (target, speed) /注释8if (_root.scrubDirection = reverse) direction = target._currentframe - Number(speed);_root.direction = directionelsedirection = target._currentframe + Number(speed);_root.direction = directiontarget.gotoAndStop(direction);if (directiontarget._totalframes) target.gotoAndStop(target._totalframes);_root.scrubTargetState = stop;if (_root.scrubTargetState = play) target.play(); else target.stop();注释1:定义“跳到最后”函数。注释2:定义“前进”函数。注释3:定义“停止”函数。注释4:定义“播放”函数。注释5:移动时间滑块。注释6:移动时间滑块时调用的函数。注释7:显示当前播放帧数的函数。注释8:根据输入的速度,调整播放情况。22、将影片的主场景中的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小班教学水果课件
- 2025年病理生理学乳腺组织病理变化模拟考试卷答案及解析
- 文旅企业IP开发策略与2025年文化旅游论坛商业化前景分析
- 辅警特色培训课程课件
- 农业银行2025甘孜藏族自治州秋招笔试EPI能力测试题专练及答案
- 中国银行2025汉中市信息科技岗笔试题及答案
- 建设银行2025湘西土家族苗族自治州小语种岗笔试题及答案
- 建设银行2025枣庄市数据分析师笔试题及答案
- 农业银行2025潍坊市秋招笔试EPI能力测试题专练及答案
- 交通银行2025安康市秋招英文面试题库及高分回答
- 2025年高考英语新课标Ⅱ卷点评及2026备考方向 课件
- 2025年学宪法、讲宪法知识竞赛题库及答案
- T/CTRA 01-2020废轮胎/橡胶再生油
- 2025广西专业技术人员公需科目培训考试答案
- 高中英语新课标3000词汇表(新高考)
- 新人教版部编本四年级上册语文全册教材分析与教学建议(课堂PPT)
- 非油气探矿权变更延续申请登记书
- 鱼塘补偿协议书范文
- 中英文版送货单
- 中英文验货报告模板
- T∕CCFA 01030-2017 纤维级化学法循环再利用聚酯切片(PET)
评论
0/150
提交评论