first commit
This commit is contained in:
440
com/yahoo/astra/fl/controls/mediaPlayerClasses/MediaControlsView.as
Executable file
440
com/yahoo/astra/fl/controls/mediaPlayerClasses/MediaControlsView.as
Executable file
@ -0,0 +1,440 @@
|
||||
/*
|
||||
Copyright (c) 2009 Yahoo! Inc. All rights reserved.
|
||||
The copyrights embodied in the content of this file are licensed under the BSD (revised) open source license
|
||||
*/
|
||||
package com.yahoo.astra.fl.controls.mediaPlayerClasses
|
||||
{
|
||||
import com.yahoo.astra.fl.controls.mediaPlayerClasses.*;
|
||||
import fl.core.UIComponent;
|
||||
import flash.display.DisplayObjectContainer;
|
||||
import flash.display.Sprite;
|
||||
import flash.events.Event;
|
||||
|
||||
//--------------------------------------
|
||||
// Styles
|
||||
//--------------------------------------
|
||||
|
||||
/**
|
||||
* Horizontal padding between the controls.
|
||||
*
|
||||
* @default 4
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="horizontalPadding", type="Number")]
|
||||
|
||||
/**
|
||||
* Vertical padding between the media scrubber and the other controls.
|
||||
*
|
||||
* @default 0
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="verticalPadding", type="Number")]
|
||||
|
||||
/**
|
||||
* padding on the bottom of the view
|
||||
*
|
||||
* @default 4
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="bottomPadding", type="Number")]
|
||||
|
||||
/**
|
||||
* height of the media scrubber
|
||||
*
|
||||
* @default 16
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="mediaScrubberHeight", type="Number")]
|
||||
|
||||
/**
|
||||
* width of the play pause toggle button
|
||||
*
|
||||
* @default 25
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="playPauseWidth", type="Number")]
|
||||
|
||||
/**
|
||||
* height of the play pause toggle button
|
||||
*
|
||||
* @default 15
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="playPauseHeight", type="Number")]
|
||||
|
||||
/**
|
||||
* width of the mute toggle button
|
||||
*
|
||||
* @default 15
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="muteToggleWidth", type="Number")]
|
||||
|
||||
/**
|
||||
* height of the mute toggle button
|
||||
*
|
||||
* @default 15
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="muteToggleHeight", type="Number")]
|
||||
|
||||
/**
|
||||
* width of the volume control
|
||||
*
|
||||
* @default 60
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="volumeControlWidth", type="Number")]
|
||||
|
||||
/**
|
||||
* height of the volume control
|
||||
*
|
||||
* @default 15
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="volumeControlHeight", type="Number")]
|
||||
|
||||
/**
|
||||
* horizontal padding for the icon in the play pause button
|
||||
*
|
||||
* @default 8
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="playPauseHorizontalPadding", type="Number")]
|
||||
|
||||
/**
|
||||
* vertical padding between the edges of the play pause button and its
|
||||
* icon
|
||||
*
|
||||
* @default 3
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="playPauseVerticalPadding", type="Number")]
|
||||
|
||||
/**
|
||||
* horizontal padding for the icon in the mute toggle button
|
||||
*
|
||||
* @default 1
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="muteToggleHorizontalPadding", type="Number")]
|
||||
/**
|
||||
* vertical padding for the icon in the mute toggle button
|
||||
*
|
||||
* @default 1
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="muteToggleVerticalPadding", type="Number")]
|
||||
|
||||
/**
|
||||
* height of the info view
|
||||
*
|
||||
* @default 15
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
[Style(name="infoViewHeight", type="Number")]
|
||||
|
||||
//--------------------------------------
|
||||
// Class Description
|
||||
//--------------------------------------
|
||||
|
||||
/**
|
||||
* MediaControlsView extends UIComponent. Assembles different views for a MediaClip
|
||||
*
|
||||
* @see fl.core.UIComponent
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
* @author Dwight Bridges
|
||||
*/
|
||||
public class MediaControlsView extends UIComponent
|
||||
{
|
||||
|
||||
//--------------------------------------
|
||||
// Constructor
|
||||
//--------------------------------------
|
||||
/**
|
||||
* Constructor
|
||||
* @param container
|
||||
* @param model
|
||||
* @param controller
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
public function MediaControlsView(container:DisplayObjectContainer, model:IMediaClip = null, controller:MediaController = null):void
|
||||
{
|
||||
_mediaClip = model;
|
||||
_mediaController = controller;
|
||||
if(container != null) container.addChild(this);
|
||||
_background = getDisplayObjectInstance(getStyleValue("background")) as Sprite;
|
||||
if(_background != null)
|
||||
{
|
||||
addChild(_background);
|
||||
_background.width = width;
|
||||
_background.height = height;
|
||||
}
|
||||
|
||||
var horizontalPadding:Number = Number(getStyleValue("horizontalPadding"));
|
||||
var verticalPadding:Number = Number(getStyleValue("verticalPadding"));
|
||||
var infoViewHeight:Number = Number(getStyleValue("infoViewHeight"));
|
||||
var volumeControlHeight:Number = Number(getStyleValue("volumeControlHeight"));
|
||||
var muteToggleButtonHeight:Number = Number(getStyleValue("muteToggleHeight"));
|
||||
var playPauseButtonHeight:Number = Number(getStyleValue("playPauseHeight"));
|
||||
|
||||
var controlsHeight:Number = Math.max(playPauseButtonHeight, muteToggleButtonHeight, volumeControlHeight, infoViewHeight);
|
||||
|
||||
_mediaScrubberView = new MediaScrubberView(this, _mediaClip, _mediaController);
|
||||
_mediaScrubberView.setSize(width - (horizontalPadding *2), Number(getStyleValue("mediaScrubberHeight")));
|
||||
|
||||
_playPauseButton = new PlayPauseToggleButton(this, _mediaClip, _mediaController);
|
||||
_playPauseButton.width = Number(getStyleValue("playPauseWidth"));
|
||||
_playPauseButton.height = Number(getStyleValue("playPauseHeight"));
|
||||
_playPauseButton.x = horizontalPadding;
|
||||
_playPauseButton.y = _playPauseButton.height < controlsHeight?_mediaScrubberView.bottom + verticalPadding + ((controlsHeight-_playPauseButton.height)/2):_mediaScrubberView.bottom + verticalPadding;
|
||||
_playPauseButton.verticalPadding = Number(getStyleValue("playPauseVerticalPadding"));
|
||||
_playPauseButton.horizontalPadding = Number(getStyleValue("playPauseHorizontalPadding"));
|
||||
|
||||
_infoView = new MediaInfoView(this, _mediaClip, _mediaController);
|
||||
|
||||
_muteToggleButton = new MuteToggleButton(this, _mediaClip, _mediaController);
|
||||
|
||||
_volumeControl = new VolumeSlider(this, _mediaClip, _mediaController);
|
||||
|
||||
_muteToggleButton.width = Number(getStyleValue("muteToggleWidth"));
|
||||
_muteToggleButton.height = Number(getStyleValue("muteToggleHeight"));
|
||||
_muteToggleButton.y = _muteToggleButton.height < controlsHeight?_mediaScrubberView.bottom + verticalPadding + ((controlsHeight-_muteToggleButton.height)/2):_mediaScrubberView.bottom + verticalPadding;
|
||||
_muteToggleButton.verticalPadding = Number(getStyleValue("muteToggleVerticalPadding"));
|
||||
_muteToggleButton.horizontalPadding = Number(getStyleValue("muteToggleHorizontalPadding"));
|
||||
_muteToggleButton.x = _volumeControl.x - _muteToggleButton.width - horizontalPadding;
|
||||
|
||||
_volumeControl.setSize(Number(getStyleValue("volumeControlWidth")), Number(getStyleValue("volumeControlHeight")));
|
||||
_volumeControl.x = width - (horizontalPadding + _volumeControl.width);
|
||||
_volumeControl.y = _volumeControl.height < controlsHeight?_mediaScrubberView.bottom + verticalPadding + ((controlsHeight-_volumeControl.height)/2):_mediaScrubberView.bottom + verticalPadding;
|
||||
|
||||
_infoView.x = _playPauseButton.right + horizontalPadding;
|
||||
_infoView.y = _infoView.height < controlsHeight?_mediaScrubberView.bottom + verticalPadding + ((controlsHeight-_infoView.height)/2):_mediaScrubberView.bottom + verticalPadding;
|
||||
_infoView.width = _muteToggleButton.x - (_infoView.x + horizontalPadding);
|
||||
_infoView.height = Number(getStyleValue("infoViewHeight"));
|
||||
|
||||
_background.height = height = _volumeControl.height + _mediaScrubberView.bottom + Number(getStyleValue("bottomPadding"));
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
// Properties
|
||||
//--------------------------------------
|
||||
|
||||
/**
|
||||
* @private
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
private static var defaultStyles:Object = {
|
||||
background:"background",
|
||||
playPauseWidth:25,
|
||||
playPauseHeight:15,
|
||||
muteToggleWidth:15,
|
||||
muteToggleHeight:15,
|
||||
mediaScrubberHeight:16,
|
||||
volumeControlHeight:15,
|
||||
volumeControlWidth:60,
|
||||
muteToggleVerticalPadding:1,
|
||||
muteToggleHorizontalPadding:1,
|
||||
playPauseVerticalPadding:3,
|
||||
verticalPadding:0,
|
||||
horizontalPadding:4,
|
||||
bottomPadding:4,
|
||||
infoViewHeight:15,
|
||||
playPauseHorizontalPadding:8
|
||||
}
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
protected var _mediaClip:IMediaClip;
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
protected var _mediaController:MediaController;
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
protected var _playPauseButton:PlayPauseToggleButton;
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
protected var _muteToggleButton:MuteToggleButton;
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
protected var _volumeControl:VolumeSlider;
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
protected var _mediaScrubberView:MediaScrubberView;
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
public var _infoView:MediaInfoView;
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
private var _mediaTypeMap:Object =
|
||||
{
|
||||
audio:AudioClip
|
||||
};
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
protected var _background:Sprite;
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
override public function set width(value:Number):void
|
||||
{
|
||||
super.width = (value > minimumWidth)?value:minimumWidth;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*/
|
||||
protected var _minimumWidth:Number;
|
||||
|
||||
/**
|
||||
* Gets the minimum width for the MediaControlsView (read-only). The minimum width of the
|
||||
* MediaControlsView is determined by the sum of muteToggleWidth, playPauseWidth, volumeControlWidth
|
||||
* minimumInfoViewWidth and total horizontal padding.
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
public function get minimumWidth():Number
|
||||
{
|
||||
_minimumWidth = Number(getStyleValue("muteToggleWidth")) + Number(getStyleValue("playPauseWidth")) + Number(getStyleValue("volumeControlWidth")) + 80 + (Number(getStyleValue("horizontalPadding"))*5);
|
||||
return _minimumWidth;
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
// Public Methods
|
||||
//--------------------------------------
|
||||
|
||||
/**
|
||||
* getStyleDefinition - returns defaultStyles
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
public static function getStyleDefinition():Object
|
||||
{
|
||||
return mergeStyles(defaultStyles, UIComponent.getStyleDefinition());
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
// Protected Methods
|
||||
//--------------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
override protected function draw():void
|
||||
{
|
||||
super.draw();
|
||||
drawLayout();
|
||||
}
|
||||
|
||||
/**
|
||||
* @private (protected)
|
||||
*
|
||||
* Sizes and positions all elements of the MediaControlsView.
|
||||
*
|
||||
* @langversion 3.0
|
||||
* @playerversion Flash 9.0.28.0
|
||||
*/
|
||||
protected function drawLayout():void
|
||||
{
|
||||
var horizontalPadding:Number = Number(getStyleValue("horizontalPadding"));
|
||||
var verticalPadding:Number = Number(getStyleValue("verticalPadding"));
|
||||
var infoViewHeight:Number = Number(getStyleValue("infoViewHeight"));
|
||||
var volumeControlHeight:Number = Number(getStyleValue("volumeControlHeight"));
|
||||
var muteToggleButtonHeight:Number = Number(getStyleValue("muteToggleHeight"));
|
||||
var playPauseButtonHeight:Number = Number(getStyleValue("playPauseHeight"));
|
||||
|
||||
var controlsHeight:Number = Math.max(playPauseButtonHeight, muteToggleButtonHeight, volumeControlHeight, infoViewHeight);
|
||||
|
||||
_mediaScrubberView.x = horizontalPadding;
|
||||
_mediaScrubberView.y = 0;
|
||||
_mediaScrubberView.setSize(width - (horizontalPadding *2), Number(getStyleValue("mediaScrubberHeight")))
|
||||
|
||||
_playPauseButton.width = Number(getStyleValue("playPauseWidth"));
|
||||
_playPauseButton.height = playPauseButtonHeight;
|
||||
_playPauseButton.x = horizontalPadding;
|
||||
_playPauseButton.y = _playPauseButton.height < controlsHeight?_mediaScrubberView.bottom + verticalPadding + ((controlsHeight-_playPauseButton.height)/2):_mediaScrubberView.bottom + verticalPadding;
|
||||
_playPauseButton.verticalPadding = Number(getStyleValue("playPauseVerticalPadding"));
|
||||
_playPauseButton.horizontalPadding = Number(getStyleValue("playPauseHorizontalPadding"));
|
||||
|
||||
_volumeControl.width = Number(getStyleValue("volumeControlWidth"));
|
||||
_volumeControl.height = volumeControlHeight;
|
||||
_volumeControl.x = width - (horizontalPadding + _volumeControl.width);
|
||||
_volumeControl.y = _volumeControl.height < controlsHeight?_mediaScrubberView.bottom + verticalPadding + ((controlsHeight-_volumeControl.height)/2):_mediaScrubberView.bottom + verticalPadding;
|
||||
|
||||
_muteToggleButton.width = Number(getStyleValue("muteToggleWidth"));
|
||||
_muteToggleButton.height = muteToggleButtonHeight;
|
||||
_muteToggleButton.y = _muteToggleButton.height < controlsHeight?_mediaScrubberView.bottom + verticalPadding + ((controlsHeight-_muteToggleButton.height)/2):_mediaScrubberView.bottom + verticalPadding;
|
||||
_muteToggleButton.verticalPadding = Number(getStyleValue("muteToggleVerticalPadding"));
|
||||
_muteToggleButton.horizontalPadding = Number(getStyleValue("muteToggleHorizontalPadding"));
|
||||
_muteToggleButton.x = _volumeControl.x - _muteToggleButton.width - horizontalPadding;
|
||||
|
||||
_infoView.x = _playPauseButton.right + horizontalPadding;
|
||||
_infoView.width = _muteToggleButton.x - (_infoView.x + horizontalPadding);
|
||||
_infoView.height = infoViewHeight;
|
||||
_infoView.y = _infoView.height < controlsHeight?_mediaScrubberView.bottom + verticalPadding + ((controlsHeight-_infoView.height)/2):_mediaScrubberView.bottom + verticalPadding;
|
||||
_background.height = height = verticalPadding + controlsHeight + _mediaScrubberView.bottom + Number(getStyleValue("bottomPadding"));
|
||||
_background.width = width;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user