actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView.ax [swf] flex
* Flash Video for Professionals: MVC Player * http://www.flashconnections.com *
author: James O'Reilly */ package com.flashconnections.ui.component.mediaPlayer { import flash.display.MovieClip; import flash.media.Video; import com.flashconnections.pattern.mvc.Controller; import com.flashconnections.pattern.mvc.Model; import com.flashconnections.pattern.mvc.View; import com.flashconnections.ui.component.mediaPlayer.ifc.I@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView; import com.flashconnections.ui.component.mediaPlayer.MediaPlayerController; import com.flashconnections.ui.component.mediaPlayer.MediaPlayerModel; import com.flashconnections.ui.component.mediaPlayer.MediaPlayerButton; import com.flashconnections.util.Proxy; import flash.events.MouseEvent; import flash.display.Sprite; public class @ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView extends View implements I@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView { private var _videoInstance:Video; public var playButton:MediaPlayerButton; public var pauseButton:MediaPlayerButton; public var stopButton:MediaPlayerButton; public var nextButton:MediaPlayerButton; public var prevButton:MediaPlayerButton; public function @ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView(model:Model, controller:Controller, container:MovieClip) { super(model, controller, container); playButton = new MediaPlayerButton("Restart"); pauseButton = new MediaPlayerButton("Pause"); stopButton = new MediaPlayerButton("Stop"); nextButton = new MediaPlayerButton("Next"); prevButton = new MediaPlayerButton("Previous"); } public override function init():void { // Video Container var my_videocontainer:MovieClip = new MovieClip(); getContainer().addChild(my_videocontainer); my_videocontainer.x = 10; my_videocontainer.y = 10; // Video Component var my_video:Video = new Video(320,240); my_videocontainer.addChild(my_video); setContent(my_videocontainer); setVideoInstance(my_video); getVideoInstance().attachNetStream(MediaPlayerModel(getModel()).getStream()); // Tool Box of video controls var tools:Sprite = new Sprite(); tools.addChild(playButton); playButton.y = 80; tools.addChild(pauseButton) pauseButton.y = playButton.y + playButton.height + 10; tools.addChild(stopButton); stopButton.y = pauseButton.y + pauseButton.height + 10; tools.addChild(nextButton); nextButton.y = stopButton.y + stopButton.height + 10; tools.addChild(prevButton); prevButton.y = nextButton.y + nextButton.height + 10; getContainer().addChild(tools); tools.x = my_videocontainer.x + my_videocontainer.width + 60; } public override function initCoordinates(x:Number, y:Number, w:Number, h:Number):void { getContent().x = x; getContent().y = y; getContent().width = w; getContent().height = h; } public function setVideoInstance(val:Video):void { _videoInstance = val; } public function getVideoInstance():Video { return _videoInstance; } public override function layout():void { var cont:MovieClip = getContainer(); var cntrl:MediaPlayerController = MediaPlayerController(getController()); playButton.addEventListener(MouseEvent.CLICK, cntrl.play); pauseButton.addEventListener(MouseEvent.CLICK, cntrl.pause); stopButton.addEventListener(MouseEvent.CLICK, cntrl.stop); nextButton.addEventListener(MouseEvent.CLICK, cntrl.playNext); prevButton.addEventListener(MouseEvent.CLICK, cntrl.playPrevious); } public function onMetaData(val:Object):void { trace("@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView.onMetaData" + " " + val.code); } public function onStatus(val:Object):void { trace("@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView.onStatus" + " " + val.code); } public function onPlay():void { pauseButton.Label = "Pause"; pauseButton.enabled = true; pauseButton.alpha = 1; trace("@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView.onPlay"); } public function onPlayMedia(path:String):void { trace("@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView.onPlayMedia" + " " + path); } public function onPause():void { pauseButton.Label = (pauseButton.Label=="Pause")? "Resume":"Pause"; pauseButton.enabled = true; pauseButton.alpha = 1; trace("@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView.onPause"); } public function onStop():void { pauseButton.Label = "Pause"; pauseButton.enabled = false; pauseButton.alpha = .35; trace("@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView.onStop"); } public function onSetMediaPosition(val:Number):void { trace("@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView.onSetMediaPosition" + " " + val); } public function onSetVolume(val:Number):void { trace("@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView.onSetVolume" + " " + val); } public function registerUIElement(name:String, val:MovieClip):void {} public override function toString():String { return "com.flashconnections.ui.component.mediaPlayer.@ax-actionscript-video-com-flashconnections-ui-component-mediaPlayer-MediaPlayerView"; } }}
[]readme course(s) prefaceI 1 2II 3 4III 5 6 7IV 8 9 10V 11 12 afterthought(s)appendix reference(s) example(s)resource(s) _![]()
(C) Æliens 27/08/2009
You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.