Jun 29
在前面的Flex的VideoDisplay控件中如何创建和使用ActionScript暗点的例子中,我们稍微了解了一点关于CuePointManager的用法,接下来的例子演示了Flex中如何利用cuePointManager属性和addCuePoint事件,往FLV中添加ActionScript暗点。
由于width比较大,所以Demo放在单独的页面中:
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- [Bindable]
- private var FLV_URL:String = "http://blog.minidx.com/ext/cuepoints.flv";
- private function videoDisplay_addCuePoint(evt:MouseEvent):void {
- var cpTime:String = videoDisplay.playheadTime.toFixed(3);
- var cpName:String = 'cp' + (parseFloat(cpTime) * 1000);
- videoDisplay.cuePointManager.addCuePoint({name:cpName, time:cpTime});
- lbl.text = videoDisplay.cuePointManager.getCuePoints().length + " cue point(s)";
- }
- private function toggleVideoPlayback():void {
- (videoDisplay.playing) ? videoDisplay.pause() : videoDisplay.play();
- }
- private function updateProgressBar():void {
- progressBar.setProgress(videoDisplay.playheadTime, videoDisplay.totalTime)
- }
- ]]>
- </mx:Script>
- <mx:Label text="Click video to begin playback" />
- <mx:Panel title="{FLV_URL.split('/').pop()} ({videoDisplay.totalTime.toFixed(2)})" id="panel" visible="false">
- <mx:HBox>
- <mx:VBox>
- <mx:VideoDisplay id="videoDisplay" source="{FLV_URL}" autoPlay="false" ready="panel.visible = true" cuePointManagerClass="mx.controls.videoClasses.CuePointManager" click="toggleVideoPlayback()" playheadUpdate="updateProgressBar()" />
- <mx:ProgressBar id="progressBar" width="{videoDisplay.width}" mode="manual" label="{videoDisplay.playheadTime.toFixed(2)} / -{(videoDisplay.totalTime - videoDisplay.playheadTime).toFixed(2)} (%3%%)" />
- </mx:VBox>
- <mx:VBox>
- <mx:DataGrid id="dataGrid" width="{videoDisplay.width}" height="{videoDisplay.height}" dataProvider="{videoDisplay.cuePoints}" change="videoDisplay.playheadTime = event.currentTarget.selectedItem.time" />
- <mx:HBox width="100%">
- <mx:Button label="add cue point" click="videoDisplay_addCuePoint(event)" />
- <mx:Label id="lbl" width="100%" textAlign="right" />
- </mx:HBox>
- </mx:VBox>
- </mx:HBox>
- </mx:Panel>
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer
