3815 lines
131 KiB
ActionScript
3815 lines
131 KiB
ActionScript
package ckaction.style {
|
|
import flash.display.Stage;
|
|
import flash.display.Sprite;
|
|
import flash.events.Event;
|
|
import flash.display.Loader;
|
|
import ckaction.act.script;
|
|
import flash.text.TextField;
|
|
import flash.events.MouseEvent;
|
|
import flash.geom.Point;
|
|
import flash.events.ErrorEvent;
|
|
import fl.transitions.Tween;
|
|
import fl.transitions.easing.None;
|
|
import fl.transitions.TweenEvent;
|
|
import flash.display.StageDisplayState;
|
|
import ckaction.act.timeInterval;
|
|
import ckaction.C.C;
|
|
import flash.events.DataEvent;
|
|
import ckaction.act.timeOut;
|
|
import flash.ui.Mouse;
|
|
import ckaction.act.log;
|
|
import flash.display.SimpleButton;
|
|
|
|
public class face {
|
|
private var STAGE: Stage = null;
|
|
private var THIS: Sprite = null;
|
|
private var CONFIG: Object = {}, STYLE: Object = {}, LANGUAGE: Object = {}, FLASHVARS: Object = {};
|
|
private var intoFun: Function = null; //调用主控制台的into
|
|
private var stageW: int = 0,
|
|
stageH: int = 0;
|
|
private var M: Sprite = null; //控制栏元件
|
|
public var MOBJ: Object = {}; //存放控制栏里各元素的
|
|
private var imgButtonI: int = 0;
|
|
private var mouseDownName: String = ""; //鼠标在音量和进度上按下时附值
|
|
private var point: Point = null; //进度按钮音量调节按钮坐标
|
|
private var volumeTemp: Number = 0; //保存临时音量
|
|
private var timeTotal: Number = 0; //总时间
|
|
private var timeNow: Number = 0; //播放时间
|
|
private var timeMax: Number = -1; //当前播放的最大时间
|
|
private var timeSeek: Number = -1; //拖动前的时间
|
|
private var loadTotal: int = 0; //总字节
|
|
private var loadNow: int = 0; //当前加载量
|
|
private var timeFollow: Boolean = true; //时间进度条是否走动
|
|
private var seekTime: Number = 0; //要跳转的时间
|
|
private var mUpSeek: Boolean = true; //是否支持在鼠标拖动进度按钮后的动作
|
|
private var loaderNum: int = 0; //要加载的图片总量
|
|
private var showTween: Tween = null,
|
|
hideTween: Tween = null;
|
|
private var timeSliderShow: Boolean = true,
|
|
timeOutSliderShow: Boolean = false,
|
|
mShow: Boolean = true;
|
|
private var cbHideTimer: timeInterval = null,
|
|
cbShowTimer: timeInterval = null;
|
|
private var cbTween: Tween = null;
|
|
private var oldStageXY: Object = {};
|
|
private var mMinXY: Object = {};
|
|
private var errorText: TextField = null;
|
|
private var setTimeClick: timeOut = null;
|
|
private var isClick: Boolean = false;
|
|
private var pause: Sprite = null;
|
|
//提示点
|
|
private var promptSpotArr: Array = [];
|
|
private var promptSpotObjArr: Array = [];
|
|
//定义元件开始
|
|
//存放播放器背景
|
|
private var background: Object = {
|
|
background: null
|
|
};
|
|
private var clickSprite: Sprite = null;
|
|
private var loading: Loader = null,
|
|
logo: Loader = null;
|
|
private var prompt: Sprite = null;
|
|
private var force: Boolean = false;
|
|
//定义元件结束
|
|
//获取状态
|
|
public var full: Boolean = false; //是否全屏状态
|
|
//预览图片
|
|
private var previewElement: newPreview = null;
|
|
private var preview: Sprite = null;
|
|
private var previewLoad: Boolean = false,
|
|
previewLoadIng: Boolean = false;
|
|
private var previewTop: Sprite = null;
|
|
private var pTween: Tween = null; //预览图片缓动
|
|
private var previewPrompt: Sprite = null;
|
|
private var listenerArr: Array = [];
|
|
private var definitionTimer: timeInterval = null,subtitleTimer:timeInterval=null;
|
|
private var buttonDown: Boolean = false;
|
|
private var videoSpriteXY:Object={x:0,y:0};
|
|
public function face(stage: Stage, sprite: Sprite, into: Function) {
|
|
// constructor code
|
|
STAGE = stage;
|
|
THIS = sprite;
|
|
CONFIG = C.CONFIG;
|
|
STYLE = CONFIG["style"];
|
|
LANGUAGE = CONFIG["language"];
|
|
FLASHVARS = CONFIG["flashvars"];
|
|
script.traceObject(STYLE);
|
|
intoFun = into;
|
|
stageW = STAGE.stageWidth;
|
|
stageH = STAGE.stageHeight;
|
|
stage.addEventListener(Event.RESIZE, resizeHandler);
|
|
loadBackGround();
|
|
}
|
|
|
|
private function resizeHandler(event: Event): void {
|
|
resize();
|
|
//resize();
|
|
}
|
|
private function resize(): void {
|
|
stageW = STAGE.stageWidth;
|
|
stageH = STAGE.stageHeight;
|
|
//修改背景位置和尺寸
|
|
backgroundResize();
|
|
//控制栏
|
|
controlBarResize();
|
|
//loading
|
|
loadingResize();
|
|
//logo
|
|
logoResize();
|
|
//buffer
|
|
bufferResize();
|
|
//音量
|
|
volumeSliderResize();
|
|
//时间进度
|
|
timeSliderResize();
|
|
//简易时间进度
|
|
simpleScheduleResize();
|
|
//点播时间显示框
|
|
vodTimeTextResize();
|
|
//直播显示框
|
|
liveTimeTextResize();
|
|
//调节全局自定义元件的坐标
|
|
loadCustomResize();
|
|
//如果控制栏是隐藏状态
|
|
if (!mShow) {
|
|
mShowHandler();
|
|
if (cbHideTimer) {
|
|
cbHideTimer.start();
|
|
}
|
|
if (cbShowTimer) {
|
|
cbShowTimer.stop();
|
|
}
|
|
}
|
|
//调整错误文本框
|
|
errorShowResize();
|
|
//调整中间播放按钮
|
|
centerPlayResize();
|
|
//调用前置后置广告
|
|
advertisementResize();
|
|
|
|
checkFullScreen();
|
|
definitionResize();
|
|
subtitlesResize();
|
|
promptSpotResize();
|
|
}
|
|
//加载字幕切换组件
|
|
public function loadSubtitles(n:int=-1):void{
|
|
if (!C.CONFIG["config"]["subtitle"]) {
|
|
return;
|
|
}
|
|
var trackS:String=C.CONFIG["flashvars"]["cktrack"];
|
|
var trackArr=[];
|
|
var index:int=0;
|
|
if(trackS && trackS.indexOf(",")>-1){
|
|
trackArr=script.trackToArray(trackS);
|
|
for(var i:int=0;i<trackArr.length;i++){
|
|
if(trackArr[i][2]>index){
|
|
index=trackArr[i][2];
|
|
}
|
|
}
|
|
if(n==-1){
|
|
n=index;
|
|
}
|
|
}
|
|
var eventS: String = STYLE["controlBar"]["subtitle"]["event"];
|
|
if (MOBJ.hasOwnProperty("subtitleDefault") && MOBJ["subtitleDefault"] != null) {
|
|
if (eventS == "over") {
|
|
MOBJ["subtitleDefault"].removeEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
|
|
} else {
|
|
MOBJ["subtitleDefault"].removeEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
MOBJ["subtitleDefault"].removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
MOBJ["subtitleDefault"].removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
}
|
|
M.removeChild(MOBJ["subtitleDefault"]);
|
|
MOBJ["subtitleDefault"] = null;
|
|
}
|
|
|
|
var text: String = "";
|
|
if (n > -1) {
|
|
text=trackArr[n][1];
|
|
}
|
|
|
|
if (text == "") {
|
|
text = LANGUAGE["subtitle"];
|
|
}
|
|
var buttonObj: Object = script.copyObject(STYLE["controlBar"]["subtitle"]["defaultButton"]);
|
|
if (n == -1) {
|
|
buttonObj["overBackgroundColor"] = buttonObj["backgroundColor"];
|
|
}
|
|
buttonObj["text"] = text;
|
|
var button: SimpleButton = element.newButton(buttonObj);
|
|
|
|
if (MOBJ.hasOwnProperty("timeSlider")) {
|
|
var tc: int = M.getChildIndex(MOBJ["timeSlider"]["backDefaultSprite"]);
|
|
M.addChildAt(button, tc);
|
|
} else {
|
|
M.addChild(button);
|
|
}
|
|
if (n > -1) {
|
|
if (eventS == "over") {
|
|
button.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
|
|
} else {
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
button.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
button.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
}
|
|
}
|
|
MOBJ["subtitleDefault"] = button;
|
|
//加载按钮列表
|
|
|
|
subtitlesResize();
|
|
}
|
|
public function newSubtitles(high: int = 0): void { //high是高亮编号
|
|
if (!C.CONFIG["config"]["subtitle"]) {
|
|
loadSubtitles(-1);
|
|
return;
|
|
}
|
|
var trackS:String=C.CONFIG["flashvars"]["cktrack"];
|
|
var trackArr=[];
|
|
if(trackS.indexOf(",")>-1){
|
|
trackArr=script.trackToArray(trackS);
|
|
}
|
|
else{
|
|
return;
|
|
}
|
|
//建立按钮
|
|
if (MOBJ.hasOwnProperty("subtitleBack") && MOBJ["subtitleBack"] != null) {
|
|
M.removeChild(MOBJ["subtitleBack"]);
|
|
MOBJ["subtitleBack"] = null;
|
|
}
|
|
var buttonObj: Object = {};
|
|
var text = "";
|
|
var buttonArr: Array = [];
|
|
var lineArr: Array = [];
|
|
for (var i: int = 0; i < trackArr.length; i++) {
|
|
if (i != high) {
|
|
buttonObj = STYLE["controlBar"]["subtitle"]["button"];
|
|
} else {
|
|
buttonObj = STYLE["controlBar"]["subtitle"]["buttonHighlight"];
|
|
}
|
|
if (trackArr[i][1] != "") {
|
|
text = trackArr[i][1];
|
|
}
|
|
buttonObj["text"] = text;
|
|
var button: SimpleButton = element.newButton(buttonObj);
|
|
button.name = "subtitle_" + i;
|
|
button.addEventListener(MouseEvent.CLICK, function (event: MouseEvent) {
|
|
THIS["changeSubtitles"](event.target.name.toString().replace("subtitle_", ""));
|
|
});
|
|
buttonArr.push(button);
|
|
}
|
|
//创建背景
|
|
//计算宽高
|
|
var background: Object = STYLE["controlBar"]["subtitle"]["background"];
|
|
var separate: Object = STYLE["controlBar"]["subtitle"]["separate"];
|
|
var bWidth: int = Number(background["paddingLeft"]) + Number(background["paddingRight"]) + buttonArr[0].width;
|
|
var bHeight: int = Number(background["paddingTop"]) + Number(background["paddingBottom"]) + buttonArr[0].height * buttonArr.length;
|
|
bHeight += (Number(separate["height"]) + Number(separate["marginTop"]) + Number(separate["marginBottom"])) * (buttonArr.length - 1);
|
|
//script.traceObject();
|
|
var bgObj: Object = {
|
|
backgroundColor: background["backgroundColor"], //背景颜色
|
|
backgroundAlpha: background["backgroundAlpha"], //背景透明度
|
|
border: background["border"],
|
|
borderColor: background["borderColor"], //边框颜色
|
|
radius: background["radius"], //圆角弧度
|
|
width: bWidth,
|
|
height: bHeight
|
|
}
|
|
var bgSprite: Sprite = element.newSprite(bgObj);
|
|
//画倒三角
|
|
var triangleObj: Object = {
|
|
width: background["triangleWidth"],
|
|
height: background["triangleHeight"],
|
|
backgroundColor: background["triangleBackgroundColor"],
|
|
border: background["triangleBorder"],
|
|
borderColor: background["triangleBorderColor"],
|
|
alpha: background["triangleAlpha"]
|
|
};
|
|
var triangle: Sprite = element.newTriangle(triangleObj);
|
|
triangle.y = bgSprite.height + Number(background["triangleDeviationY"]);
|
|
triangle.x = (bgSprite.width - triangle.width) * 0.5 + Number(background["triangleDeviationX"]);
|
|
bgSprite.addChild(triangle);
|
|
//倒三角结束
|
|
//将按钮填充进去并且画个间隔线
|
|
var lineObj: Object = {
|
|
color: separate["color"], //背景颜色
|
|
alpha: Number(separate["alpha"]), //透明度
|
|
width: bWidth - Number(separate["marginLeft"]) - Number(separate["marginRight"]),
|
|
height: Number(separate["height"])
|
|
};
|
|
var nY: int = Number(background["paddingTop"]);
|
|
for (i = 0; i < buttonArr.length; i++) {
|
|
buttonArr[i].y = nY;
|
|
buttonArr[i].x = Number(background["paddingLeft"]);
|
|
bgSprite.addChild(buttonArr[i]);
|
|
nY += buttonArr[i].height;
|
|
//画间隔线
|
|
if (i < buttonArr.length - 1) {
|
|
var line: Sprite = element.newLine(lineObj);
|
|
nY += Number(separate["marginTop"]);
|
|
line.x = Number(separate["marginLeft"]);
|
|
line.y = nY;
|
|
nY += line.height;
|
|
nY += Number(separate["marginBottom"]);
|
|
bgSprite.addChild(line);
|
|
}
|
|
//画间隔线结束
|
|
}
|
|
bgSprite.visible = false;
|
|
//填充结束
|
|
M.addChild(bgSprite);
|
|
MOBJ["subtitleBack"] = bgSprite;
|
|
subtitlesResize();
|
|
//trace(201, "行", bWidth, bHeight);
|
|
}
|
|
//加载清晰度组件
|
|
public function loadDefinition(n: int = -1): void {
|
|
if (!C.CONFIG["config"]["definition"]) {
|
|
return;
|
|
}
|
|
|
|
var eventS: String = STYLE["controlBar"]["definition"]["event"];
|
|
if (MOBJ.hasOwnProperty("definitionDefault") && MOBJ["definitionDefault"] != null) {
|
|
if (eventS == "over") {
|
|
MOBJ["definitionDefault"].removeEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
|
|
} else {
|
|
MOBJ["definitionDefault"].removeEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
MOBJ["definitionDefault"].removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
MOBJ["definitionDefault"].removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
}
|
|
M.removeChild(MOBJ["definitionDefault"]);
|
|
MOBJ["definitionDefault"] = null;
|
|
}
|
|
var text: String = "";
|
|
if (n > -1) {
|
|
var video: Array = C.CONFIG["flashvars"]["video"];
|
|
if (video[n].hasOwnProperty("definition")) {
|
|
if (video[n]["definition"] != "") {
|
|
text = video[n]["definition"];
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
if (text == "") {
|
|
text = LANGUAGE["definition"];
|
|
}
|
|
var buttonObj: Object = script.copyObject(STYLE["controlBar"]["definition"]["defaultButton"]);
|
|
if (n == -1) {
|
|
buttonObj["overBackgroundColor"] = buttonObj["backgroundColor"];
|
|
}
|
|
buttonObj["text"] = text;
|
|
var button: SimpleButton = element.newButton(buttonObj);
|
|
|
|
if (MOBJ.hasOwnProperty("timeSlider")) {
|
|
var tc: int = M.getChildIndex(MOBJ["timeSlider"]["backDefaultSprite"]);
|
|
M.addChildAt(button, tc);
|
|
} else {
|
|
M.addChild(button);
|
|
}
|
|
if (n > -1) {
|
|
if (eventS == "over") {
|
|
button.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
|
|
} else {
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
button.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
button.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
}
|
|
}
|
|
MOBJ["definitionDefault"] = button;
|
|
//加载按钮列表
|
|
|
|
definitionResize();
|
|
}
|
|
public function newDefinition(high: int = 0): void { //high是高亮编号
|
|
if (!C.CONFIG["config"]["definition"]) {
|
|
loadDefinition(-1);
|
|
return;
|
|
}
|
|
var video: Array = C.CONFIG["flashvars"]["video"];
|
|
if (video[0].hasOwnProperty("definition")) {
|
|
if (video[0]["definition"] == "") {
|
|
loadDefinition(-1);
|
|
return;
|
|
}
|
|
} else {
|
|
loadDefinition(-1);
|
|
return;
|
|
}
|
|
//建立按钮
|
|
if (MOBJ.hasOwnProperty("definitionBack") && MOBJ["definitionBack"] != null) {
|
|
M.removeChild(MOBJ["definitionBack"]);
|
|
MOBJ["definitionBack"] = null;
|
|
}
|
|
var buttonObj: Object = {};
|
|
var text = "";
|
|
var buttonArr: Array = [];
|
|
var lineArr: Array = [];
|
|
for (var i: int = 0; i < video.length; i++) {
|
|
if (i != high) {
|
|
buttonObj = STYLE["controlBar"]["definition"]["button"];
|
|
} else {
|
|
buttonObj = STYLE["controlBar"]["definition"]["buttonHighlight"];
|
|
}
|
|
if (video[i]["definition"] != "") {
|
|
text = video[i]["definition"];
|
|
}
|
|
buttonObj["text"] = text;
|
|
var button: SimpleButton = element.newButton(buttonObj);
|
|
button.name = "definition_" + i;
|
|
button.addEventListener(MouseEvent.CLICK, function (event: MouseEvent) {
|
|
THIS["changeDefinition"](event.target.name.toString().replace("definition_", ""));
|
|
});
|
|
buttonArr.push(button);
|
|
}
|
|
//创建背景
|
|
//计算宽高
|
|
var background: Object = STYLE["controlBar"]["definition"]["background"];
|
|
var separate: Object = STYLE["controlBar"]["definition"]["separate"];
|
|
var bWidth: int = Number(background["paddingLeft"]) + Number(background["paddingRight"]) + buttonArr[0].width;
|
|
var bHeight: int = Number(background["paddingTop"]) + Number(background["paddingBottom"]) + buttonArr[0].height * buttonArr.length;
|
|
bHeight += (Number(separate["height"]) + Number(separate["marginTop"]) + Number(separate["marginBottom"])) * (buttonArr.length - 1);
|
|
//script.traceObject();
|
|
var bgObj: Object = {
|
|
backgroundColor: background["backgroundColor"], //背景颜色
|
|
backgroundAlpha: background["backgroundAlpha"], //背景透明度
|
|
border: background["border"],
|
|
borderColor: background["borderColor"], //边框颜色
|
|
radius: background["radius"], //圆角弧度
|
|
width: bWidth,
|
|
height: bHeight
|
|
}
|
|
var bgSprite: Sprite = element.newSprite(bgObj);
|
|
//画倒三角
|
|
var triangleObj: Object = {
|
|
width: background["triangleWidth"],
|
|
height: background["triangleHeight"],
|
|
backgroundColor: background["triangleBackgroundColor"],
|
|
border: background["triangleBorder"],
|
|
borderColor: background["triangleBorderColor"],
|
|
alpha: background["triangleAlpha"]
|
|
};
|
|
var triangle: Sprite = element.newTriangle(triangleObj);
|
|
triangle.y = bgSprite.height + Number(background["triangleDeviationY"]);
|
|
triangle.x = (bgSprite.width - triangle.width) * 0.5 + Number(background["triangleDeviationX"]);
|
|
bgSprite.addChild(triangle);
|
|
//倒三角结束
|
|
//将按钮填充进去并且画个间隔线
|
|
var lineObj: Object = {
|
|
color: separate["color"], //背景颜色
|
|
alpha: Number(separate["alpha"]), //透明度
|
|
width: bWidth - Number(separate["marginLeft"]) - Number(separate["marginRight"]),
|
|
height: Number(separate["height"])
|
|
};
|
|
var nY: int = Number(background["paddingTop"]);
|
|
for (i = 0; i < buttonArr.length; i++) {
|
|
buttonArr[i].y = nY;
|
|
buttonArr[i].x = Number(background["paddingLeft"]);
|
|
bgSprite.addChild(buttonArr[i]);
|
|
nY += buttonArr[i].height;
|
|
//画间隔线
|
|
if (i < buttonArr.length - 1) {
|
|
var line: Sprite = element.newLine(lineObj);
|
|
nY += Number(separate["marginTop"]);
|
|
line.x = Number(separate["marginLeft"]);
|
|
line.y = nY;
|
|
nY += line.height;
|
|
nY += Number(separate["marginBottom"]);
|
|
bgSprite.addChild(line);
|
|
}
|
|
//画间隔线结束
|
|
}
|
|
bgSprite.visible = false;
|
|
//填充结束
|
|
M.addChild(bgSprite);
|
|
MOBJ["definitionBack"] = bgSprite;
|
|
definitionResize();
|
|
//trace(201, "行", bWidth, bHeight);
|
|
}
|
|
private function definitionResize(): void {
|
|
if (!C.CONFIG["config"]["definition"]) {
|
|
return;
|
|
}
|
|
//backgroundCoor
|
|
var newCoor: Object
|
|
if (MOBJ.hasOwnProperty("definitionDefault") && MOBJ["definitionDefault"] != null) {
|
|
newCoor = coorDinate(STYLE["controlBar"]["definition"]["defaultButtonCoor"], MOBJ["controlBarBgColor"]);
|
|
//script.traceObject(newCoor)
|
|
MOBJ["definitionDefault"].x = newCoor["x"];
|
|
MOBJ["definitionDefault"].y = newCoor["y"];
|
|
}
|
|
if (MOBJ.hasOwnProperty("definitionBack") && MOBJ["definitionBack"] != null) {
|
|
var height: String = STYLE["controlBar"]["definition"]["backgroundCoor"]["height"].toString();
|
|
newCoor = coorDinate(STYLE["controlBar"]["definition"]["backgroundCoor"], MOBJ["controlBarBgColor"]);
|
|
MOBJ["definitionBack"].x = newCoor["x"];
|
|
MOBJ["definitionBack"].y = newCoor["y"] - (height == "true" ? MOBJ["definitionBack"].height : 0);
|
|
}
|
|
}
|
|
private function subtitlesResize(): void {
|
|
if (!C.CONFIG["config"]["subtitle"]) {
|
|
return;
|
|
}
|
|
//backgroundCoor
|
|
var newCoor: Object
|
|
if (MOBJ.hasOwnProperty("subtitleDefault") && MOBJ["subtitleDefault"] != null) {
|
|
newCoor = coorDinate(STYLE["controlBar"]["subtitle"]["defaultButtonCoor"], MOBJ["controlBarBgColor"]);
|
|
//script.traceObject(newCoor)
|
|
MOBJ["subtitleDefault"].x = newCoor["x"];
|
|
MOBJ["subtitleDefault"].y = newCoor["y"];
|
|
}
|
|
if (MOBJ.hasOwnProperty("subtitleBack") && MOBJ["subtitleBack"] != null) {
|
|
var height: String = STYLE["controlBar"]["subtitle"]["backgroundCoor"]["height"].toString();
|
|
newCoor = coorDinate(STYLE["controlBar"]["subtitle"]["backgroundCoor"], MOBJ["controlBarBgColor"]);
|
|
MOBJ["subtitleBack"].x = newCoor["x"];
|
|
MOBJ["subtitleBack"].y = newCoor["y"] - (height == "true" ? MOBJ["subtitleBack"].height : 0);
|
|
}
|
|
}
|
|
//-------------------------------------------------------------------------------------------logo
|
|
private function logoResize(): void {
|
|
if (logo) {
|
|
var coor: Object = coorDinate(STYLE["logo"]);
|
|
logo.x = coor["x"];
|
|
logo.y = coor["y"];
|
|
}
|
|
}
|
|
private function loadLogo(): void {
|
|
//加载loading元件
|
|
if (STYLE.hasOwnProperty("logo") && STYLE["logo"]["file"]!="" && STYLE["logo"]["file"]!="null") {
|
|
loaderNum++;
|
|
var newLoader: loadByteImg = new loadByteImg(STYLE["logo"]["file"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
logo = byte;
|
|
THIS.addChild(logo);
|
|
imgLoaded();
|
|
logoResize();
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|
|
//-------------------------------------------------------------------------------------------logo 结束
|
|
//-------------------------------------------------------------------------------------------buffer
|
|
private function bufferResize(): void {
|
|
var coor: Object = {};
|
|
if (MOBJ.hasOwnProperty("buffer")) {
|
|
coor = coorDinate(STYLE["buffer"]);
|
|
MOBJ["buffer"].x = coor["x"];
|
|
MOBJ["buffer"].y = coor["y"];
|
|
}
|
|
if (MOBJ.hasOwnProperty("bufferText")) {
|
|
coor = coorDinate(STYLE["buffer"]["text"]);
|
|
MOBJ["bufferText"].x = coor["x"];
|
|
MOBJ["bufferText"].y = coor["y"];
|
|
}
|
|
}
|
|
private function loadBuffer(): void {
|
|
//加载loading元件
|
|
if (STYLE.hasOwnProperty("buffer")) {
|
|
loaderNum++;
|
|
var newLoader: loadByteImg = new loadByteImg(STYLE["buffer"]["file"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
MOBJ["buffer"] = byte;
|
|
THIS.addChild(MOBJ["buffer"]);
|
|
MOBJ["buffer"].visible = false;
|
|
imgLoaded();
|
|
bufferResize();
|
|
}
|
|
});
|
|
if (STYLE["buffer"].hasOwnProperty("text")) {
|
|
var obj: Object = STYLE["buffer"]["text"];
|
|
obj["text"] = script.replace(LANGUAGE["buffer"], ["[$percentage]"], [0]);
|
|
var newText: TextField = element.newText(obj);
|
|
THIS.addChild(newText);
|
|
MOBJ["bufferText"] = newText;
|
|
MOBJ["bufferText"].visible = false;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------------------buffer 结束
|
|
//-------------------------------------------------------------------------------------------loading
|
|
private function loadingResize(): void {
|
|
if (loading) {
|
|
var coor: Object = coorDinate(STYLE["loading"]);
|
|
loading.x = coor["x"];
|
|
loading.y = coor["y"];
|
|
}
|
|
}
|
|
private function loadLoading(): void {
|
|
//加载loading元件
|
|
if (STYLE.hasOwnProperty("loading") && STYLE["loading"]["file"]!="" && STYLE["loading"]["file"]!="null") {
|
|
loaderNum++;
|
|
var newLoader: loadByteImg = new loadByteImg(STYLE["loading"]["file"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
loading = byte;
|
|
THIS.addChild(loading);
|
|
imgLoaded();
|
|
loadingResize();
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|
|
//-------------------------------------------------------------------------------------------loading 结束
|
|
|
|
private function promptSpotResize(): void { //根据时间点计算坐标
|
|
if (promptSpotArr.length > 0) {
|
|
var w = MOBJ["timeSlider"]["backgroundDefaultLoader"].width;
|
|
trace("宽度:", w);
|
|
//timeTotal
|
|
for (var i: int = 0; i < promptSpotArr.length; i++) {
|
|
var p: Object = promptSpotObjArr[i];
|
|
var x: int = (p["time"] * w / timeTotal) - promptSpotArr[i].width * 0.5;
|
|
if (x < 0) {
|
|
x = 0;
|
|
}
|
|
if (x > w - promptSpotArr[i].width) {
|
|
x = w - promptSpotArr[i].width
|
|
}
|
|
var y: int = (MOBJ["timeSlider"]["backDefaultSprite"].height - promptSpotArr[i].height) * 0.5;
|
|
promptSpotArr[i].x = x;
|
|
promptSpotArr[i].y = y;
|
|
}
|
|
}
|
|
}
|
|
//-------------------------------------------------------------------------------------------提示点结束
|
|
//-------------------------------------------------------------------------------------------提示图片
|
|
private function previewShow(t: int = 0): void {
|
|
if (!preview && !previewLoad) {
|
|
if (!previewLoadIng) {
|
|
previewLoadIng = true;
|
|
loadPreview(t);
|
|
}
|
|
return;
|
|
}
|
|
if (preview != null) {
|
|
var scale: int = FLASHVARS["preview"]["scale"];
|
|
var x: int = M.mouseX;
|
|
var nowNum: int = t / scale;
|
|
var numTotal: int = timeTotal / scale;
|
|
var imgW: int = preview.width * 0.01 / FLASHVARS["preview"]["file"].length;
|
|
var imgH: int = preview.height;
|
|
var left: int = (imgW * nowNum) - x + imgW * 0.5,
|
|
top: int = stageH - STYLE["preview"]["bottom"] - imgH;
|
|
//top: int = M.y - imgH - (M.height - STYLE["controlBar"]["height"]);
|
|
var topLeft: int = x - imgW * 0.5;
|
|
var timepieces: int = 0;
|
|
var isTween: Boolean = true;
|
|
if (previewTop == null) {
|
|
var obj: Object = {
|
|
width: imgW - Number(STYLE["preview"]["border"]),
|
|
height: imgH - Number(STYLE["preview"]["border"]),
|
|
borderAlpha: Number(STYLE["preview"]["alpha"]),
|
|
border: STYLE["preview"]["border"],
|
|
borderColor: STYLE["preview"]["borderColor"]
|
|
}
|
|
previewTop = element.newSprite(obj);
|
|
THIS.addChildAt(previewTop, THIS.getChildIndex(M));
|
|
previewTop.visible = false;
|
|
}
|
|
//topLeft-=STYLE["preview"]["border"];
|
|
//trace(THIS.getChildIndex(preview),THIS.getChildIndex(previewTop));
|
|
if (THIS.getChildIndex(preview) > THIS.getChildIndex(previewTop)) {
|
|
var temp: int = THIS.getChildIndex(preview);
|
|
|
|
//THIS.addChildAt(previewTop, THIS.getChildIndex(preview));
|
|
THIS.addChildAt(preview, THIS.getChildIndex(previewTop));
|
|
}
|
|
if (topLeft < 0) {
|
|
topLeft = 0;
|
|
timepieces = x - topLeft - imgW * 0.5;
|
|
}
|
|
if (topLeft > stageW - imgW) {
|
|
topLeft = stageW - imgW;
|
|
timepieces = x - topLeft - imgW * 0.5;
|
|
}
|
|
if (left < 0) {
|
|
left = 0;
|
|
}
|
|
if (left > numTotal * imgW - stageW) {
|
|
left = numTotal * imgW - stageH;
|
|
}
|
|
if (preview.visible == false) {
|
|
isTween = false;
|
|
}
|
|
previewTop.x = topLeft + STYLE["preview"]["border"] * 0.5;
|
|
previewTop.y = top + STYLE["preview"]["border"] * 0.5;
|
|
previewTop.visible = true;
|
|
preview.visible = true;
|
|
preview.y = top;
|
|
if (previewPrompt) {
|
|
previewPrompt.y = top - previewPrompt.height - Number(C.CONFIG["style"]["previewPrompt"]["marginBottom"]);
|
|
THIS.addChildAt(previewPrompt, THIS.getChildIndex(preview) + 1);
|
|
}
|
|
if (pTween != null) {
|
|
pTween.stop();
|
|
pTween = null;
|
|
}
|
|
if (isTween) {
|
|
pTween = new Tween(preview, "x", None.easeOut, preview.x, -(left + timepieces), 0.3, true);
|
|
} else {
|
|
preview.x = -(left + timepieces);
|
|
}
|
|
}
|
|
}
|
|
private function previewHide(): void {
|
|
if (previewTop) {
|
|
previewTop.visible = false;
|
|
}
|
|
if (preview) {
|
|
preview.visible = false;
|
|
}
|
|
}
|
|
private function loadPreview(t: int = 0): void {
|
|
if (timeTotal <= 0) {
|
|
return;
|
|
}
|
|
if (FLASHVARS.hasOwnProperty("preview") && FLASHVARS["preview"] && !previewLoad) {
|
|
if (FLASHVARS["preview"].hasOwnProperty("file") && FLASHVARS["preview"].hasOwnProperty("scale")) {
|
|
previewElement = new newPreview(FLASHVARS["preview"]["file"], function (sp: Sprite = null) {
|
|
if (sp) {
|
|
if (preview) {
|
|
THIS.removeChild(preview);
|
|
preview = null;
|
|
}
|
|
//TRACE(preview.width)
|
|
preview = sp;
|
|
THIS.addChildAt(preview, THIS.getChildIndex(M));
|
|
preview.visible = false;
|
|
if (t > 0 && prompt) {
|
|
previewShow(t);
|
|
}
|
|
}
|
|
previewElement = null;
|
|
previewLoad = true;
|
|
});
|
|
}
|
|
|
|
}
|
|
}
|
|
//-------------------------------------------------------------------------------------------提示图片
|
|
//-------------------------------------------------------------------------------------------控制栏
|
|
private function controlBarResize(): void {
|
|
var newSize: Object = {}, newCoor: Object = {};
|
|
var i: int = 0;
|
|
var customArr: Array = [];
|
|
var k: String = "";
|
|
if (M) {
|
|
var coor: Object = coorDinate({
|
|
align: STYLE["controlBar"]["align"],
|
|
vAlign: STYLE["controlBar"]["vAlign"],
|
|
offsetX: STYLE["controlBar"]["offsetX"],
|
|
offsetY: STYLE["controlBar"]["offsetY"]
|
|
});
|
|
M.x = coor["x"];
|
|
M.y = coor["y"];
|
|
}
|
|
if (MOBJ.hasOwnProperty("controlBarBgColor")) {
|
|
newSize = calculatedSize(STYLE["controlBar"]["width"].toString(), STYLE["controlBar"]["height"].toString());
|
|
MOBJ["controlBarBgColor"].width = newSize["width"];
|
|
MOBJ["controlBarBgColor"].height = newSize["height"];
|
|
}
|
|
if (MOBJ.hasOwnProperty("backgroundImg")) {
|
|
newSize = calculatedSize(STYLE["controlBar"]["width"].toString(), STYLE["controlBar"]["height"].toString());
|
|
MOBJ["backgroundImg"].width = newSize["width"];
|
|
MOBJ["backgroundImg"].height = newSize["height"];
|
|
}
|
|
//MOBJ["button"]
|
|
if (MOBJ.hasOwnProperty("button")) {
|
|
for (k in MOBJ["button"]) {
|
|
newCoor = coorDinate(STYLE["controlBar"]["button"][k], MOBJ["controlBarBgColor"]);
|
|
MOBJ["button"][k].x = newCoor["x"];
|
|
MOBJ["button"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
//定义自定义按钮的坐标
|
|
if (MOBJ.hasOwnProperty("customButton")) {
|
|
for (k in MOBJ["customButton"]) {
|
|
newCoor = coorDinate(STYLE["controlBar"]["custom"]["button"][k], MOBJ["controlBarBgColor"]);
|
|
//script.traceObject(newCoor);
|
|
MOBJ["customButton"][k].x = newCoor["x"];
|
|
MOBJ["customButton"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
//自定义图片的坐标
|
|
|
|
if (MOBJ.hasOwnProperty("customImages")) {
|
|
for (k in MOBJ["customImages"]) {
|
|
newCoor = coorDinate(STYLE["controlBar"]["custom"]["images"][k], MOBJ["controlBarBgColor"]);
|
|
MOBJ["customImages"][k].x = newCoor["x"];
|
|
MOBJ["customImages"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
//自定义文本框的坐标
|
|
if (MOBJ.hasOwnProperty("customText")) {
|
|
for (k in MOBJ["customText"]) {
|
|
newCoor = coorDinate(STYLE["controlBar"]["custom"]["text"][k], MOBJ["controlBarBgColor"]);
|
|
MOBJ["customText"][k].x = newCoor["x"];
|
|
MOBJ["customText"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
//自定swf的坐标
|
|
if (MOBJ.hasOwnProperty("customSwf")) {
|
|
for (k in MOBJ["customSwf"]) {
|
|
newCoor = coorDinate(STYLE["controlBar"]["custom"]["swf"][k], MOBJ["controlBarBgColor"]);
|
|
MOBJ["customSwf"][k].x = newCoor["x"];
|
|
MOBJ["customSwf"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
}
|
|
private function loadCustomResize(): void {
|
|
//定义自定义按钮的坐标
|
|
var k: String = "";
|
|
var newCoor: Object = {};
|
|
if (MOBJ.hasOwnProperty("vcustomButton")) {
|
|
for (k in MOBJ["vcustomButton"]) {
|
|
newCoor = coorDinate(STYLE["custom"]["button"][k]);
|
|
//script.traceObject(newCoor);
|
|
MOBJ["vcustomButton"][k].x = newCoor["x"];
|
|
MOBJ["vcustomButton"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
//自定义图片的坐标
|
|
//trace("自定义图片",MOBJ.hasOwnProperty("vcustomImages"));
|
|
if (MOBJ.hasOwnProperty("vcustomImages")) {
|
|
for (k in MOBJ["vcustomImages"]) {
|
|
newCoor = coorDinate(STYLE["custom"]["images"][k]);
|
|
MOBJ["vcustomImages"][k].x = newCoor["x"];
|
|
MOBJ["vcustomImages"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
//自定义文本框的坐标
|
|
if (MOBJ.hasOwnProperty("vcustomText")) {
|
|
for (k in MOBJ["vcustomText"]) {
|
|
newCoor = coorDinate(STYLE["custom"]["text"][k]);
|
|
MOBJ["vcustomText"][k].x = newCoor["x"];
|
|
MOBJ["vcustomText"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
//自定swf的坐标
|
|
for( k in MOBJ){
|
|
trace(k,MOBJ[k]);
|
|
}
|
|
if (MOBJ.hasOwnProperty("vcustomSwf")) {
|
|
for (k in MOBJ["vcustomSwf"]) {
|
|
newCoor = coorDinate(STYLE["custom"]["swf"][k]);
|
|
MOBJ["vcustomSwf"][k].x = newCoor["x"];
|
|
MOBJ["vcustomSwf"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
}
|
|
private function loadControlBar(): void {
|
|
//建立一个基于界面底部的元件
|
|
var mObj: Object = {
|
|
backgroundColor: 0xFF0000,
|
|
backgroundAlpha: 0, //背景透明度
|
|
width: 1,
|
|
height: 1
|
|
};
|
|
M = element.newSprite(mObj);
|
|
THIS.addChild(M);
|
|
if (CONFIG["config"]["buttonMode"]["controlBar"]) {
|
|
M.buttonMode = true;
|
|
}
|
|
if (STYLE.hasOwnProperty("controlBar")) {
|
|
if (STYLE["controlBar"].hasOwnProperty("hideControlBar")) {
|
|
if (STYLE["controlBar"]["hideControlBar"].hasOwnProperty("hideDelayTime")) {
|
|
if (STYLE["controlBar"]["hideControlBar"]["hideDelayTime"] > 0) {
|
|
cbHideTimer = new timeInterval(STYLE["controlBar"]["hideControlBar"]["hideDelayTime"], cbHideTimerHandler);
|
|
cbHideTimer.start();
|
|
cbShowTimer = new timeInterval(100, cbShowTimerHandler);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//加载纯色层
|
|
//加载背景
|
|
var background: Object = STYLE["controlBar"]["background"];
|
|
var newSize: Object = calculatedSize(STYLE["controlBar"]["width"].toString(), STYLE["controlBar"]["height"].toString());
|
|
//无论有没有图片都加载一个纯色层
|
|
if (background.hasOwnProperty("backgroundColor") && background["backgroundColor"]) {
|
|
mObj = {
|
|
backgroundColor: background["backgroundColor"],
|
|
backgroundAlpha: (background.hasOwnProperty("backgroundImg") && background["backgroundImg"]) ? 0 : background["alpha"], //背景透明度
|
|
width: newSize["width"],
|
|
height: newSize["height"],
|
|
radius: background["radius"]
|
|
};
|
|
var backgroundColorSprite: Sprite = element.newSprite(mObj);
|
|
M.addChild(backgroundColorSprite);
|
|
MOBJ["controlBarBgColor"] = backgroundColorSprite;
|
|
}
|
|
if (background.hasOwnProperty("backgroundImg") && background["backgroundImg"]) {
|
|
loaderNum++;
|
|
var backgroundImgLoader: loadByteImg = new loadByteImg(background["backgroundImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
var loader: Loader = byte;
|
|
loader.alpha = background["alpha"];
|
|
M.addChild(loader);
|
|
MOBJ["backgroundImg"] = loader;
|
|
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"background\"][\"backgroundImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
controlBarResize();
|
|
controlLoaderHandler();
|
|
backgroundImgLoader = null;
|
|
});
|
|
|
|
} else {
|
|
controlBarResize();
|
|
controlLoaderHandler();
|
|
//loadLogo();
|
|
}
|
|
|
|
}
|
|
//统一的在控制栏加载完成后的动作
|
|
private function controlLoaderHandler(): void {
|
|
loadControlBarButton();
|
|
loadDefinition();
|
|
loadSubtitles();//加载字幕切换按钮
|
|
loadVolumeSlider(); //构建音量调节滑动条
|
|
loadTimeSlider(); //构建时间进度滑动条
|
|
loadSimpleSchedule(); //简单进度条
|
|
loadTimeText();
|
|
loadLoading();
|
|
loadLogo();
|
|
loadBuffer();
|
|
loadCustom();
|
|
loadAdvertisement();
|
|
if (CONFIG["config"]["previewDefaultLoad"]) {
|
|
loadPreview();
|
|
}
|
|
}
|
|
|
|
//加载音量调节和进度条
|
|
private function volumeSliderResize(): void {
|
|
if (MOBJ.hasOwnProperty("volumeSlider")) {
|
|
var newCoor: Object = coorDinate(STYLE["controlBar"]["volumeSchedule"], MOBJ["controlBarBgColor"]);
|
|
MOBJ["volumeSlider"]["backSprite"].x = newCoor["x"];
|
|
MOBJ["volumeSlider"]["backSprite"].y = newCoor["y"];
|
|
}
|
|
}
|
|
|
|
//静音切换
|
|
private function muteOrEscMute(volume: Number = 0): void {
|
|
if (volume == 0) {
|
|
MOBJ["button"]["mute"].visible = false;
|
|
MOBJ["button"]["escMute"].visible = true;
|
|
} else {
|
|
MOBJ["button"]["mute"].visible = true;
|
|
MOBJ["button"]["escMute"].visible = false;
|
|
}
|
|
}
|
|
private function mouseMoveHandler(event: MouseEvent): void {
|
|
/*MOBJ["volume"] = {
|
|
backSprite: backSprite,
|
|
backgroundLoader:backgroundLoader,
|
|
maskLoader: maskLoader,
|
|
maskSprite: maskSprite,
|
|
buttonLoader: buttonLoader
|
|
};*/
|
|
var pointTemp: Point = new Point(event.localX, event.localY);
|
|
var value: Number = 0;
|
|
var stageX: int = 0;
|
|
//trace(event);
|
|
//trace(event.currentTarget.name);
|
|
switch (event.currentTarget) {
|
|
case MOBJ["timeSlider"]["backgroundDefaultLoader"]:
|
|
case MOBJ["timeSlider"]["loadDefaultLoader"]:
|
|
case MOBJ["timeSlider"]["playDefaultLoader"]:
|
|
//trace(timeTotal,new Date);
|
|
if (timeTotal == 0 || FLASHVARS["live"]) {
|
|
break;
|
|
}
|
|
//trace(MOBJ["timeSlider"]["backDefaultSprite"].mouseX,MOBJ["timeSlider"]["backgroundDefaultLoader"].width);
|
|
var mx: int = MOBJ["timeSlider"]["backDefaultSprite"].mouseX;
|
|
var bw: int = MOBJ["timeSlider"]["backgroundDefaultLoader"].width;
|
|
if (mx > bw - 2) {
|
|
mx = bw;
|
|
}
|
|
value = int(mx * timeTotal / bw);
|
|
if (value > timeTotal) {
|
|
value = timeTotal;
|
|
}
|
|
if (value < 0) {
|
|
value = 0;
|
|
}
|
|
//trace(MOBJ["timeSlider"]["backDefaultSprite"].mouseX,MOBJ["timeSlider"]["backgroundDefaultLoader"].width,value,"v");
|
|
//trace(event.stageX, event.stageY , pointTemp.y);
|
|
stageX = STAGE.mouseX - M.x - MOBJ["timeSlider"]["backDefaultSprite"].x;
|
|
//trace(value,LANGUAGE["timeSliderOver"]);
|
|
showPrompt(getFormatTime(LANGUAGE["timeSliderOver"], value), stageX, event.stageY - pointTemp.y);
|
|
previewShow(value);
|
|
break;
|
|
case MOBJ["timeSlider"]["buttonDefaultLoader"]:
|
|
if (timeTotal == 0 || FLASHVARS["live"]) {
|
|
break;
|
|
}
|
|
value = Number((MOBJ["timeSlider"]["buttonDefaultLoader"].x - MOBJ["timeSlider"]["backDefaultSprite"].x) * timeTotal / (MOBJ["timeSlider"]["backgroundDefaultLoader"].width - MOBJ["timeSlider"]["buttonDefaultLoader"].width));
|
|
//trace("value:",value);
|
|
if (value > timeTotal) {
|
|
value = timeTotal;
|
|
}
|
|
if (value < 0) {
|
|
value = 0;
|
|
}
|
|
seekTime = value;
|
|
//trace("要跳转的秒数,来之face",seekTime);
|
|
showPrompt(getFormatTime(LANGUAGE["timeSliderOver"], value), event.stageX, event.stageY - pointTemp.y);
|
|
break;
|
|
case MOBJ["definitionDefault"]:
|
|
if (STYLE["controlBar"]["definition"]["event"] != "over") {
|
|
showPrompt(LANGUAGE["buttonOver"]["definition"], M.x + MOBJ["definitionDefault"].x + MOBJ["definitionDefault"].width * 0.5, event.stageY - pointTemp.y);
|
|
}
|
|
break;
|
|
case MOBJ["subtitleDefault"]:
|
|
if (STYLE["controlBar"]["subtitle"]["event"] != "over") {
|
|
showPrompt(LANGUAGE["buttonOver"]["subtitles"], M.x + MOBJ["subtitleDefault"].x + MOBJ["subtitleDefault"].width * 0.5, event.stageY - pointTemp.y);
|
|
}
|
|
break;
|
|
case MOBJ["volumeSlider"]["backgroundLoader"]:
|
|
case MOBJ["volumeSlider"]["maskLoader"]:
|
|
value = MOBJ["volumeSlider"]["backgroundLoader"].mouseX / MOBJ["volumeSlider"]["backSprite"].width;
|
|
//changeVolume(vol * 0.01, true, true, false);
|
|
if (value > 1) {
|
|
value = 1;
|
|
}
|
|
if (value < 0) {
|
|
value = 0;
|
|
}
|
|
showPrompt(script.strReplace(LANGUAGE["volumeSliderOver"], ["[$volume]"], [Math.ceil(value * 100).toString()]), event.stageX, event.stageY - pointTemp.y);
|
|
break;
|
|
case MOBJ["volumeSlider"]["buttonLoader"]:
|
|
value = getVolumeTemp();
|
|
showPrompt(script.strReplace(LANGUAGE["volumeSliderOver"], ["[$volume]"], [Math.ceil(value * 100).toString()]), event.stageX, event.stageY - pointTemp.y);
|
|
break;
|
|
case STAGE:
|
|
if (M && MOBJ.hasOwnProperty("timeSlider") && MOBJ.hasOwnProperty("timeOutSlider")) {
|
|
if (STAGE.mouseX > M.x + mMinXY["x"] && STAGE.mouseX < M.x + mMinXY["x"] + M.width && STAGE.mouseY > M.y + mMinXY["y"] && STAGE.mouseY < M.y + mMinXY["y"] + M.height) {
|
|
if (!timeSliderShow) {
|
|
timeDefaultShow();
|
|
}
|
|
} else {
|
|
if (!timeOutSliderShow) {
|
|
timeOutShow();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
if (event.target.name.toString().indexOf("spirte_") > -1) {
|
|
var ni: int = Number(event.target.name.toString().replace("spirte_", ""));
|
|
var timeString: String = "";
|
|
if (CONFIG["config"]["promptSpotTime"]) {
|
|
timeString = getFormatTime(LANGUAGE["timeSliderOver"], promptSpotObjArr[ni]["time"]) + " ";
|
|
}
|
|
stageX = STAGE.mouseX - M.x - MOBJ["timeSlider"]["backDefaultSprite"].x;
|
|
showPrompt(getFormatTime(LANGUAGE["timeSliderOver"], promptSpotObjArr[ni]["time"]), stageX, event.stageY - pointTemp.y);
|
|
showPreviewPrompt(timeString + promptSpotObjArr[ni]["words"], stageX, event.stageY - pointTemp.y);
|
|
previewShow(promptSpotObjArr[ni]["time"]);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
private function timeDefaultShow(): void {
|
|
if (showTween) {
|
|
showTween.stop();
|
|
showTween = null;
|
|
}
|
|
if (hideTween) {
|
|
hideTween.stop();
|
|
hideTween = null;
|
|
}
|
|
showTween = new Tween(MOBJ["timeSlider"]["backDefaultSprite"], "alpha", None.easeOut, MOBJ["timeSlider"]["backDefaultSprite"].alpha, 1, STYLE["controlBar"]["timeSchedule"]["defaultShowTime"], true);
|
|
showTween.start();
|
|
hideTween = new Tween(MOBJ["timeOutSlider"]["backOutSprite"], "alpha", None.easeOut, MOBJ["timeOutSlider"]["backOutSprite"].alpha, 0, STYLE["controlBar"]["timeSchedule"]["mouseOutHideTime"], true);
|
|
hideTween.start();
|
|
timeSliderShow = true;
|
|
timeOutSliderShow = false;
|
|
}
|
|
private function timeOutShow(): void {
|
|
if (showTween) {
|
|
showTween.stop();
|
|
showTween = null;
|
|
}
|
|
if (hideTween) {
|
|
hideTween.stop();
|
|
hideTween = null;
|
|
}
|
|
showTween = new Tween(MOBJ["timeSlider"]["backDefaultSprite"], "alpha", None.easeOut, MOBJ["timeSlider"]["backDefaultSprite"].alpha, 0, STYLE["controlBar"]["timeSchedule"]["defaultHideTime"], true);
|
|
showTween.start();
|
|
hideTween = new Tween(MOBJ["timeOutSlider"]["backOutSprite"], "alpha", None.easeOut, MOBJ["timeOutSlider"]["backOutSprite"].alpha, 1, STYLE["controlBar"]["timeSchedule"]["mouseOutShowTime"], true);
|
|
hideTween.start();
|
|
timeOutSliderShow = true;
|
|
timeSliderShow = false;
|
|
}
|
|
private function cbHideTimerHandler(): void {
|
|
var nowStageXY: Object = {
|
|
x: STAGE.mouseX,
|
|
y: STAGE.mouseY
|
|
};
|
|
if (MOBJ["button"]["pause"].visible && (nowStageXY["x"] == oldStageXY["x"] || nowStageXY["y"] == oldStageXY["y"]) && (STAGE.mouseX < M.x + mMinXY["x"] || STAGE.mouseX > M.x + mMinXY["x"] + M.width || STAGE.mouseY < M.y + mMinXY["y"] || STAGE.mouseY > M.y + mMinXY["y"] + M.height)) {
|
|
var hideEnvironment: String = STYLE["controlBar"]["hideControlBar"]["hideEnvironment"];
|
|
if (mShow && (hideEnvironment == "all" || (hideEnvironment == "full" && full) || (hideEnvironment == "nofull" && !full))) {
|
|
mHideHandler();
|
|
if (cbShowTimer) {
|
|
cbHideTimer.stop();
|
|
cbShowTimer.start();
|
|
}
|
|
}
|
|
}
|
|
oldStageXY = nowStageXY;
|
|
}
|
|
private function cbShowTimerHandler(): void {
|
|
var nowStageXY: Object = {
|
|
x: STAGE.mouseX,
|
|
y: STAGE.mouseY
|
|
};
|
|
if (nowStageXY["x"] != oldStageXY["x"] || nowStageXY["y"] != oldStageXY["y"]) {
|
|
oldStageXY = nowStageXY;
|
|
if (!mShow) {
|
|
mShowHandler();
|
|
if (cbHideTimer) {
|
|
cbHideTimer.start();
|
|
cbShowTimer.stop();
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
private function mShowHandler(): void {
|
|
if (force) {
|
|
return;
|
|
}
|
|
if (cbTween) {
|
|
cbTween.removeEventListener(TweenEvent.MOTION_FINISH, simpleScheduleHandler);
|
|
cbTween = null;
|
|
}
|
|
mShow = true;
|
|
var coor: Object = coorDinate({
|
|
align: STYLE["controlBar"]["align"],
|
|
vAlign: STYLE["controlBar"]["vAlign"],
|
|
offsetX: STYLE["controlBar"]["offsetX"],
|
|
offsetY: STYLE["controlBar"]["offsetY"]
|
|
});
|
|
if (MOBJ.hasOwnProperty("simpleSchedule")) {
|
|
MOBJ["simpleSchedule"]["backDefaultSprite"].visible = false;
|
|
}
|
|
if(M.visible==false){
|
|
M.visible=true;
|
|
}
|
|
if (STYLE["controlBar"]["hideControlBar"]["hideMode"] == "alpha") {
|
|
cbTween = new Tween(M, "alpha", None.easeOut, M.alpha, 1, STYLE["controlBar"]["hideControlBar"]["hideTweenTime"], true);
|
|
} else {
|
|
cbTween = new Tween(M, "y", None.easeOut, M.y, coor["y"], STYLE["controlBar"]["hideControlBar"]["hideTweenTime"], true);
|
|
}
|
|
THIS["controlBarIsShow"]();
|
|
Mouse.show();
|
|
}
|
|
private function mHideHandler(): void {
|
|
trace("控制栏隐藏");
|
|
if (cbTween) {
|
|
cbTween.removeEventListener(TweenEvent.MOTION_FINISH, simpleScheduleHandler);
|
|
cbTween = null;
|
|
}
|
|
mShow = false;
|
|
THIS["controlBarIsShow"](false);
|
|
if (force) {
|
|
M.visible=false;
|
|
} else {
|
|
if (STYLE["controlBar"]["hideControlBar"]["hideMode"] == "alpha") {
|
|
cbTween = new Tween(M, "alpha", None.easeOut, M.alpha, 0, STYLE["controlBar"]["hideControlBar"]["hideTweenTime"], true);
|
|
} else {
|
|
cbTween = new Tween(M, "y", None.easeOut, M.y, stageH + M.height, STYLE["controlBar"]["hideControlBar"]["hideTweenTime"], true);
|
|
}
|
|
if (cbTween) {
|
|
cbTween.addEventListener(TweenEvent.MOTION_FINISH, simpleScheduleHandler);
|
|
}
|
|
}
|
|
|
|
if (!force) {
|
|
Mouse.hide();
|
|
}
|
|
}
|
|
private function simpleScheduleHandler(event: TweenEvent) {
|
|
if (MOBJ.hasOwnProperty("simpleSchedule")) {
|
|
var showSimpleSchedule: String = STYLE["controlBar"]["hideControlBar"]["showSimpleSchedule"];
|
|
if (showSimpleSchedule == "all" || (showSimpleSchedule == "nofull" && !full) || (showSimpleSchedule == "full" && full)) {
|
|
MOBJ["simpleSchedule"]["backDefaultSprite"].visible = true;
|
|
}
|
|
|
|
}
|
|
}
|
|
private function getVolumeTemp(): Number {
|
|
var vol: Number = volumeTemp;
|
|
if (vol > 1) {
|
|
vol = 1;
|
|
}
|
|
if (vol < 0) {
|
|
vol = 0;
|
|
}
|
|
return vol;
|
|
}
|
|
private function timeSliderResize() {
|
|
//timeSliderResize
|
|
/*
|
|
MOBJ["timeSlider"] = {
|
|
backDefaultSprite: backDefaultSprite,
|
|
backgroundDefaultLoader: backgroundDefaultLoader,
|
|
loadDefaultLoader: loadDefaultLoader,
|
|
loadDefaultSprite: loadDefaultSprite,
|
|
playDefaultLoader: playDefaultLoader,
|
|
playDefaultSprite: playDefaultSprite,
|
|
buttonDefaultLoader: buttonDefaultLoader
|
|
};
|
|
*/
|
|
var newCoor: Object = {};
|
|
var newSize: Object = {};
|
|
if (MOBJ.hasOwnProperty("timeSlider")) {
|
|
newCoor = coorDinate(STYLE["controlBar"]["timeSchedule"]["default"], MOBJ["timeSlider"]["backDefaultSprite"]);
|
|
script.traceObject(newCoor);
|
|
newSize = calculatedSize(STYLE["controlBar"]["timeSchedule"]["default"]["width"].toString(), MOBJ["timeSlider"]["backDefaultSprite"].height.toString(), MOBJ["controlBarBgColor"]);
|
|
MOBJ["timeSlider"]["backDefaultSprite"].x = newCoor["x"];
|
|
MOBJ["timeSlider"]["backDefaultSprite"].y = newCoor["y"];
|
|
MOBJ["timeSlider"]["backgroundDefaultLoader"].width = newSize["width"];
|
|
MOBJ["timeSlider"]["loadDefaultLoader"].width = newSize["width"];
|
|
MOBJ["timeSlider"]["playDefaultLoader"].width = newSize["width"];
|
|
trace(MOBJ["timeSlider"]["backDefaultSprite"].height);
|
|
timePlaySliderChange(timeNow);
|
|
timeLoadSliderChange(loadNow);
|
|
}
|
|
if (MOBJ.hasOwnProperty("timeOutSlider")) {
|
|
//trace(MOBJ["timeOutSlider"]["backOutSprite"].width, "==");
|
|
newCoor = coorDinate(STYLE["controlBar"]["timeSchedule"]["mouseOut"], MOBJ["timeOutSlider"]["backOutSprite"]);
|
|
newSize = calculatedSize(STYLE["controlBar"]["timeSchedule"]["mouseOut"]["width"].toString(), MOBJ["timeOutSlider"]["backOutSprite"].height.toString(), MOBJ["controlBarBgColor"]);
|
|
MOBJ["timeOutSlider"]["backOutSprite"].x = newCoor["x"];
|
|
MOBJ["timeOutSlider"]["backOutSprite"].y = newCoor["y"];
|
|
MOBJ["timeOutSlider"]["backgroundOutLoader"].width = newSize["width"];
|
|
MOBJ["timeOutSlider"]["loadOutLoader"].width = newSize["width"];
|
|
MOBJ["timeOutSlider"]["playOutLoader"].width = newSize["width"];
|
|
|
|
timePlaySliderChange(timeNow);
|
|
timeLoadSliderChange(loadNow);
|
|
}
|
|
}
|
|
private function simpleScheduleResize() {
|
|
//timeSliderResize
|
|
/*
|
|
MOBJ["timeSlider"] = {
|
|
backDefaultSprite: backDefaultSprite,
|
|
backgroundDefaultLoader: backgroundDefaultLoader,
|
|
loadDefaultLoader: loadDefaultLoader,
|
|
loadDefaultSprite: loadDefaultSprite,
|
|
playDefaultLoader: playDefaultLoader,
|
|
playDefaultSprite: playDefaultSprite,
|
|
buttonDefaultLoader: buttonDefaultLoader
|
|
};
|
|
*/
|
|
var newCoor: Object = {};
|
|
var newSize: Object = {};
|
|
if (MOBJ.hasOwnProperty("simpleSchedule")) {
|
|
newCoor = coorDinate(STYLE["controlBar"]["hideControlBar"]["simpleSchedule"]);
|
|
newSize = calculatedSize(STYLE["controlBar"]["hideControlBar"]["simpleSchedule"]["width"].toString(), MOBJ["simpleSchedule"]["backDefaultSprite"].height.toString());
|
|
MOBJ["simpleSchedule"]["backDefaultSprite"].x = newCoor["x"];
|
|
MOBJ["simpleSchedule"]["backDefaultSprite"].y = newCoor["y"];
|
|
MOBJ["simpleSchedule"]["backgroundDefaultLoader"].width = newSize["width"];
|
|
MOBJ["simpleSchedule"]["loadDefaultLoader"].width = newSize["width"];
|
|
MOBJ["simpleSchedule"]["playDefaultLoader"].width = newSize["width"];
|
|
timePlaySimpleChange(timeNow);
|
|
timeLoadSimpleChange(loadNow);
|
|
}
|
|
}
|
|
|
|
private function mouseDownHandler(event: MouseEvent): void {
|
|
STAGE.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
|
|
point = new Point(event.localX, event.localY);
|
|
switch (event.currentTarget) {
|
|
case MOBJ["timeSlider"]["buttonDefaultLoader"]:
|
|
if (timeTotal == 0 || FLASHVARS["live"] || CONFIG["config"]["timeScheduleAdjust"] == 0) {
|
|
break;
|
|
}
|
|
mouseDownName = "time";
|
|
timeFollow = false;
|
|
buttonDown = true;
|
|
trace("是否跟着走timeFollow02", timeFollow);
|
|
mUpSeek = true;
|
|
//trace("a");
|
|
MOBJ["timeSlider"]["buttonDefaultLoader"].addEventListener(Event.ENTER_FRAME, enterFrameHandler);
|
|
break;
|
|
case MOBJ["volumeSlider"]["buttonLoader"]:
|
|
mouseDownName = "volume";
|
|
MOBJ["volumeSlider"]["buttonLoader"].addEventListener(Event.ENTER_FRAME, enterFrameHandler);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
private function enterFrameHandler(event: Event): void {
|
|
if (point != null) {
|
|
var newX: int = 0;
|
|
switch (mouseDownName) {
|
|
case "time":
|
|
var btW: Number = MOBJ["timeSlider"]["buttonDefaultLoader"].width;
|
|
var bkW: Number = MOBJ["timeSlider"]["backgroundDefaultLoader"].width;
|
|
if (timeTotal == 0 || FLASHVARS["live"] || CONFIG["config"]["timeScheduleAdjust"] == 0) {
|
|
return;
|
|
}
|
|
newX = MOBJ["timeSlider"]["backDefaultSprite"].mouseX - point.x;
|
|
if (point.x > btW * 0.5) {
|
|
newX += (point.x - btW * 0.5);
|
|
} else {
|
|
newX -= (btW * 0.5 - point.x);
|
|
}
|
|
if (newX < 0) {
|
|
newX = 0;
|
|
}
|
|
//trace(newX);
|
|
var seekTimeTemp = (newX - MOBJ["timeSlider"]["backDefaultSprite"].x) * timeTotal / (bkW - btW);
|
|
//trace("seekTimeTemp",seekTimeTemp,MOBJ["timeSlider"]["backDefaultSprite"].x,MOBJ["timeSlider"]["backDefaultSprite"].width);
|
|
var isSeek: Boolean = true;
|
|
switch (CONFIG["config"]["timeScheduleAdjust"]) {
|
|
case 0:
|
|
isSeek = false;
|
|
break;
|
|
case 2:
|
|
if (seekTimeTemp < timeNow) {
|
|
isSeek = false;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (seekTimeTemp > timeNow) {
|
|
isSeek = false;
|
|
}
|
|
break;
|
|
case 4:
|
|
//trace(timeSeek);
|
|
if (timeSeek > -1) {
|
|
if (seekTimeTemp < timeSeek) {
|
|
isSeek = false;
|
|
}
|
|
} else {
|
|
if (seekTimeTemp < timeNow) {
|
|
isSeek = false;
|
|
}
|
|
}
|
|
break;
|
|
case 5:
|
|
if (seekTimeTemp > timeMax) {
|
|
isSeek = false;
|
|
}
|
|
break;
|
|
}
|
|
//trace("-------------------",isSeek);
|
|
if (!isSeek) {
|
|
mUpSeek = false;
|
|
break;
|
|
} else {
|
|
mUpSeek = true;
|
|
}
|
|
if (newX >= bkW - btW) {
|
|
newX = bkW - btW;
|
|
}
|
|
MOBJ["timeSlider"]["buttonDefaultLoader"].x = newX;
|
|
MOBJ["timeSlider"]["playDefaultSprite"].width = newX + btW * 0.5;
|
|
//seekTime = (newX*timeTotal)/(bkW-btW);
|
|
if (seekTime < 0) {
|
|
seekTime = 0;
|
|
}
|
|
if (seekTime > timeTotal - 1) {
|
|
seekTime = 0;
|
|
}
|
|
//trace("要跳转的时间",seekTime);
|
|
break;
|
|
case "volume":
|
|
newX = MOBJ["volumeSlider"]["backSprite"].mouseX - point.x;
|
|
if (point.x > MOBJ["volumeSlider"]["buttonLoader"].width * 0.5) {
|
|
newX += (point.x - MOBJ["volumeSlider"]["buttonLoader"].width * 0.5);
|
|
} else {
|
|
newX -= (MOBJ["volumeSlider"]["buttonLoader"].width * 0.5 - point.x);
|
|
}
|
|
if (newX < 0) {
|
|
newX = 0;
|
|
}
|
|
if (newX >= MOBJ["volumeSlider"]["backSprite"].width - MOBJ["volumeSlider"]["buttonLoader"].width) {
|
|
newX = MOBJ["volumeSlider"]["backSprite"].width - MOBJ["volumeSlider"]["buttonLoader"].width;
|
|
MOBJ["volumeSlider"]["maskSprite"].width = MOBJ["volumeSlider"]["backSprite"].width;
|
|
} else {
|
|
MOBJ["volumeSlider"]["maskSprite"].width = newX + MOBJ["volumeSlider"]["buttonLoader"].width * 0.5
|
|
}
|
|
MOBJ["volumeSlider"]["buttonLoader"].x = newX;
|
|
var vol: Number = Math.round(MOBJ["volumeSlider"]["buttonLoader"].x * 100 / (MOBJ["volumeSlider"]["backSprite"].width - MOBJ["volumeSlider"]["buttonLoader"].width)) * 0.01;
|
|
if (vol > 1) {
|
|
vol = 1;
|
|
}
|
|
if (vol < 0) {
|
|
vol = 0;
|
|
}
|
|
volumeTemp = vol;
|
|
THIS["changeVolume"](vol, false); //调用主程序里的调节音量并且不改变调用滑块
|
|
muteOrEscMute(vol);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
private function mouseUpHandler(event: MouseEvent): void {
|
|
point = null;
|
|
switch (mouseDownName) {
|
|
case "time":
|
|
//trace(timeTotal);
|
|
buttonDown = false;
|
|
if (timeTotal == 0 || FLASHVARS["live"] || CONFIG["config"]["timeScheduleAdjust"] == 0) {
|
|
return;
|
|
}
|
|
MOBJ["timeSlider"]["buttonDefaultLoader"].removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
|
|
//trace("+++++++++++++++++",mUpSeek);
|
|
if (mUpSeek) {
|
|
//trace("要跳转的秒数来之Up", seekTime);
|
|
THIS["videoSeek"](seekTime, false); //调用主程序里的Seek并且不改变调用滑块
|
|
} else {
|
|
timeFollow = true;
|
|
}
|
|
break;
|
|
case "volume":
|
|
MOBJ["volumeSlider"]["buttonLoader"].removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
//showTips(null, "");
|
|
STAGE.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
|
|
}
|
|
|
|
private function loadVolumeSlider(): void {
|
|
//音量调节滑块
|
|
var volume: Object = STYLE["controlBar"]["volumeSchedule"];
|
|
var backgroundLoader: Loader = null,
|
|
maskLoader: Loader = null,
|
|
buttonLoader: Sprite = null,
|
|
backSprite: Sprite = null,
|
|
maskSprite: Sprite = null;
|
|
function loadBackgroundImg(): void {
|
|
loaderNum++;
|
|
var backgroundImgLoader: loadByteImg = new loadByteImg(volume["backgroundImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
backgroundLoader = byte;
|
|
loadMaskImg();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"volume\"][\"background\"][\"backgroundImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
backgroundImgLoader = null;
|
|
});
|
|
}
|
|
function loadMaskImg(): void {
|
|
loaderNum++;
|
|
var maskImgLoader: loadByteImg = new loadByteImg(volume["maskImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
maskLoader = byte;
|
|
loadButtonImg()
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"volume\"][\"maskImg\"][\"backgroundImg\"]");
|
|
|
|
}
|
|
loadButtonImg();
|
|
imgLoaded();
|
|
maskImgLoader = null;
|
|
});
|
|
}
|
|
function loadButtonImg(): void {
|
|
loaderNum++;
|
|
buttonLoader = element.imgButton(volume["button"], "volumeSchedule", function () {
|
|
loadButtonHandler();
|
|
imgLoaded();
|
|
|
|
});
|
|
}
|
|
function loadButtonHandler(): void {
|
|
var sObj: Object = {
|
|
backgroundColor: 0xFF0000, //背景颜色
|
|
backgroundAlpha: 0, //背景透明度
|
|
width: backgroundLoader.width,
|
|
height: backgroundLoader.height > buttonLoader.height ? backgroundLoader.height : buttonLoader.height
|
|
};
|
|
backSprite = element.newSprite(sObj);
|
|
if (CONFIG["config"]["buttonMode"]["volumeSchedule"]) {
|
|
backSprite.buttonMode = true;
|
|
}
|
|
maskSprite = element.newSprite(sObj);
|
|
backgroundLoader.y = (backSprite.height - backgroundLoader.height) * 0.5;
|
|
backSprite.addChild(backgroundLoader);
|
|
maskLoader.y = (backSprite.height - maskLoader.height) * 0.5;
|
|
backSprite.addChild(maskLoader);
|
|
backSprite.addChild(maskSprite);
|
|
maskLoader.mask = maskSprite;
|
|
buttonLoader.y = (backSprite.height - buttonLoader.height) * 0.5;
|
|
backSprite.addChild(buttonLoader);
|
|
M.addChild(backSprite);
|
|
MOBJ["volumeSlider"] = {
|
|
backSprite: backSprite,
|
|
backgroundLoader: backgroundLoader,
|
|
maskLoader: maskLoader,
|
|
maskSprite: maskSprite,
|
|
buttonLoader: buttonLoader
|
|
};
|
|
volumeSliderResize();
|
|
volumeSliderChange(FLASHVARS["volume"]);
|
|
buttonLoader.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
|
|
backgroundLoader.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
maskLoader.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
backgroundLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
maskLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
buttonLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
backSprite.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
|
|
}
|
|
if (volume.hasOwnProperty("backgroundImg") && volume["backgroundImg"]) {
|
|
loadBackgroundImg();
|
|
}
|
|
}
|
|
//时间进度调节滑动条
|
|
private function loadTimeSlider(): void {
|
|
var timeSchedule: Object = STYLE["controlBar"]["timeSchedule"];
|
|
var defaultSchedule: Object = {}, outSchedule: Object = {};
|
|
var backgroundDefaultLoader: Loader = null,
|
|
loadDefaultLoader: Loader = null,
|
|
playDefaultLoader: Loader = null,
|
|
buttonDefaultLoader: Sprite = null,
|
|
backDefaultSprite: Sprite = null,
|
|
loadDefaultSprite: Sprite = null,
|
|
playDefaultSprite: Sprite = null;
|
|
var backgroundOutLoader: Loader = null,
|
|
loadOutLoader: Loader = null,
|
|
playOutLoader: Loader = null,
|
|
buttonOutLoader: Sprite = null,
|
|
backOutSprite: Sprite = null,
|
|
loadOutSprite: Sprite = null,
|
|
playOutSprite: Sprite = null;
|
|
function loadDefaultBackgroundImg(): void {
|
|
loaderNum++;
|
|
var backgroundImgDefaultLoader: loadByteImg = new loadByteImg(defaultSchedule["backgroundImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
backgroundDefaultLoader = byte;
|
|
loadDefaultLoadImg();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"timeSchedule\"][\"default\"][\"background\"][\"backgroundImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
backgroundImgDefaultLoader = null;
|
|
});
|
|
}
|
|
function loadDefaultLoadImg(): void {
|
|
loaderNum++;
|
|
var loadImgDefaultLoader: loadByteImg = new loadByteImg(defaultSchedule["loadProgressImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
loadDefaultLoader = byte;
|
|
loadDefaultPlayImg();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"timeSchedule\"][\"default\"][\"background\"][\"loadProgressImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
loadImgDefaultLoader = null;
|
|
});
|
|
}
|
|
function loadDefaultPlayImg(): void {
|
|
loaderNum++;
|
|
var playImgDefaultLoader: loadByteImg = new loadByteImg(defaultSchedule["playProgressImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
playDefaultLoader = byte;
|
|
loadDefaultButtonImg();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"timeSchedule\"][\"default\"][\"background\"][\"playProgressImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
playImgDefaultLoader = null;
|
|
});
|
|
}
|
|
function loadDefaultButtonImg(): void {
|
|
loaderNum++;
|
|
buttonDefaultLoader = element.imgButton(timeSchedule["button"], "timeSchedule", function () {
|
|
if (timeSchedule.hasOwnProperty("mouseOut") && timeSchedule["mouseOut"]) {
|
|
outSchedule = timeSchedule["mouseOut"];
|
|
loadOutBackgroundImg();
|
|
} else {
|
|
loadButtonHandler();
|
|
}
|
|
imgLoaded();
|
|
|
|
});
|
|
}
|
|
//----------------------------加载鼠标离开进度条
|
|
|
|
function loadOutBackgroundImg(): void {
|
|
loaderNum++;
|
|
var backgroundImgOutLoader: loadByteImg = new loadByteImg(outSchedule["backgroundImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
backgroundOutLoader = byte;
|
|
loadOutLoadImg();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"timeSchedule\"][\"out\"][\"background\"][\"backgroundImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
backgroundImgOutLoader = null;
|
|
});
|
|
}
|
|
function loadOutLoadImg(): void {
|
|
loaderNum++;
|
|
var loadImgOutLoader: loadByteImg = new loadByteImg(outSchedule["loadProgressImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
loadOutLoader = byte;
|
|
loadOutPlayImg();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"timeSchedule\"][\"out\"][\"background\"][\"loadProgressImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
loadImgOutLoader = null;
|
|
});
|
|
}
|
|
function loadOutPlayImg(): void {
|
|
loaderNum++;
|
|
var playImgOutLoader: loadByteImg = new loadByteImg(outSchedule["playProgressImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
playOutLoader = byte;
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"timeSchedule\"][\"out\"][\"background\"][\"playProgressImg\"]");
|
|
|
|
}
|
|
loadButtonHandler();
|
|
imgLoaded();
|
|
playImgOutLoader = null;
|
|
});
|
|
}
|
|
|
|
//----------------------------加载鼠标离开进度条结束
|
|
function loadButtonHandler(): void {
|
|
|
|
var sObj: Object = {};
|
|
//----------------------
|
|
if (timeSchedule.hasOwnProperty("mouseOut") && timeSchedule["mouseOut"]) {
|
|
sObj = {
|
|
backgroundColor: 0xFF0000, //背景颜色
|
|
backgroundAlpha: 0, //背景透明度
|
|
width: 11,
|
|
height: backgroundOutLoader.height
|
|
};
|
|
backOutSprite = element.newSprite(sObj);
|
|
loadOutSprite = element.newSprite(sObj);
|
|
playOutSprite = element.newSprite(sObj);
|
|
|
|
backOutSprite.addChild(backgroundOutLoader);
|
|
backgroundOutLoader.y = (backOutSprite.height - backgroundOutLoader.height) * 0.5;
|
|
backOutSprite.addChild(loadOutLoader);
|
|
loadOutLoader.y = (backOutSprite.height - loadOutLoader.height) * 0.5;
|
|
backOutSprite.addChild(loadOutSprite);
|
|
loadOutLoader.mask = loadOutSprite;
|
|
backOutSprite.addChild(playOutLoader);
|
|
|
|
playOutLoader.y = (backOutSprite.height - playOutLoader.height) * 0.5;
|
|
|
|
backOutSprite.addChild(playOutSprite);
|
|
playOutLoader.mask = playOutSprite;
|
|
|
|
M.addChild(backOutSprite);
|
|
MOBJ["timeOutSlider"] = {
|
|
backOutSprite: backOutSprite,
|
|
backgroundOutLoader: backgroundOutLoader,
|
|
loadOutLoader: loadOutLoader,
|
|
loadOutSprite: loadOutSprite,
|
|
playOutLoader: playOutLoader,
|
|
playOutSprite: playOutSprite
|
|
};
|
|
MOBJ["timeOutSlider"]["backOutSprite"].alpha = 0;
|
|
backgroundOutLoader.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
loadOutLoader.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
playOutLoader.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
backgroundOutLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
loadOutLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
playOutLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
}
|
|
//---------------------
|
|
sObj = {
|
|
backgroundColor: 0xFF0000, //背景颜色
|
|
backgroundAlpha: 0, //背景透明度
|
|
width: 11,
|
|
height: backgroundDefaultLoader.height > buttonDefaultLoader.height ? backgroundDefaultLoader.height : buttonDefaultLoader.height
|
|
};
|
|
backDefaultSprite = element.newSprite(sObj);
|
|
if (CONFIG["config"]["buttonMode"]["timeSchedule"]) {
|
|
backDefaultSprite.buttonMode = true;
|
|
}
|
|
loadDefaultSprite = element.newSprite(sObj);
|
|
playDefaultSprite = element.newSprite(sObj);
|
|
backDefaultSprite.addChild(backgroundDefaultLoader);
|
|
backgroundDefaultLoader.y = (backDefaultSprite.height - backgroundDefaultLoader.height) * 0.5;
|
|
backDefaultSprite.addChild(loadDefaultLoader);
|
|
loadDefaultLoader.y = (backDefaultSprite.height - loadDefaultLoader.height) * 0.5;
|
|
backDefaultSprite.addChild(loadDefaultSprite);
|
|
loadDefaultLoader.mask = loadDefaultSprite;
|
|
backDefaultSprite.addChild(playDefaultLoader);
|
|
playDefaultLoader.y = (backDefaultSprite.height - playDefaultLoader.height) * 0.5;
|
|
backDefaultSprite.addChild(playDefaultSprite);
|
|
playDefaultLoader.mask = playDefaultSprite;
|
|
backDefaultSprite.addChild(buttonDefaultLoader);
|
|
buttonDefaultLoader.y = (backDefaultSprite.height - buttonDefaultLoader.height) * 0.5;
|
|
M.addChild(backDefaultSprite);
|
|
MOBJ["timeSlider"] = {
|
|
backDefaultSprite: backDefaultSprite,
|
|
backgroundDefaultLoader: backgroundDefaultLoader,
|
|
loadDefaultLoader: loadDefaultLoader,
|
|
loadDefaultSprite: loadDefaultSprite,
|
|
playDefaultLoader: playDefaultLoader,
|
|
playDefaultSprite: playDefaultSprite,
|
|
buttonDefaultLoader: buttonDefaultLoader
|
|
};
|
|
//M.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
|
|
//M.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
buttonDefaultLoader.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
|
|
backgroundDefaultLoader.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
loadDefaultLoader.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
playDefaultLoader.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
|
|
backgroundDefaultLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
loadDefaultLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
playDefaultLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
buttonDefaultLoader.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
backDefaultSprite.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
STAGE.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); //注册鼠标经过屏幕时的动作
|
|
timeSliderResize();
|
|
}
|
|
if (timeSchedule.hasOwnProperty("default") && timeSchedule["default"]) {
|
|
defaultSchedule = timeSchedule["default"];
|
|
loadDefaultBackgroundImg();
|
|
}
|
|
}
|
|
//时间进度调节滑动条
|
|
private function loadSimpleSchedule(): void {
|
|
var defaultSchedule: Object = {};
|
|
if (STYLE["controlBar"].hasOwnProperty("hideControlBar")) {
|
|
if (STYLE["controlBar"]["hideControlBar"]["showSimpleSchedule"] != "none") {
|
|
defaultSchedule = STYLE["controlBar"]["hideControlBar"]["simpleSchedule"];
|
|
} else {
|
|
return;
|
|
}
|
|
} else {
|
|
return;
|
|
}
|
|
var backgroundDefaultLoader: Loader = null,
|
|
loadDefaultLoader: Loader = null,
|
|
playDefaultLoader: Loader = null,
|
|
buttonDefaultLoader: Sprite = null,
|
|
backDefaultSprite: Sprite = null,
|
|
loadDefaultSprite: Sprite = null,
|
|
playDefaultSprite: Sprite = null;
|
|
|
|
function loadDefaultBackgroundImg(): void {
|
|
loaderNum++;
|
|
var backgroundImgDefaultLoader: loadByteImg = new loadByteImg(defaultSchedule["backgroundImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
backgroundDefaultLoader = byte;
|
|
loadDefaultLoadImg();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"simpleSchedule\"][\"background\"][\"backgroundImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
backgroundImgDefaultLoader = null;
|
|
|
|
});
|
|
}
|
|
function loadDefaultLoadImg(): void {
|
|
loaderNum++;
|
|
var loadImgDefaultLoader: loadByteImg = new loadByteImg(defaultSchedule["loadProgressImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
loadDefaultLoader = byte;
|
|
loadDefaultPlayImg();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"simpleSchedule\"][\"background\"][\"loadProgressImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
loadImgDefaultLoader = null;
|
|
});
|
|
}
|
|
function loadDefaultPlayImg(): void {
|
|
loaderNum++;
|
|
var playImgDefaultLoader: loadByteImg = new loadByteImg(defaultSchedule["playProgressImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
playDefaultLoader = byte;
|
|
loadDefaultHandler();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"simpleSchedule\"][\"background\"][\"playProgressImg\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
playImgDefaultLoader = null;
|
|
});
|
|
}
|
|
|
|
function loadDefaultHandler(): void {
|
|
|
|
var sObj: Object = {
|
|
backgroundColor: 0xFF0000, //背景颜色
|
|
backgroundAlpha: 0, //背景透明度
|
|
width: 11,
|
|
height: backgroundDefaultLoader.height
|
|
};
|
|
|
|
backDefaultSprite = element.newSprite(sObj);
|
|
loadDefaultSprite = element.newSprite(sObj);
|
|
playDefaultSprite = element.newSprite(sObj);
|
|
backDefaultSprite.addChild(backgroundDefaultLoader);
|
|
backgroundDefaultLoader.y = (backDefaultSprite.height - backgroundDefaultLoader.height) * 0.5;
|
|
backDefaultSprite.addChild(loadDefaultLoader);
|
|
loadDefaultLoader.y = (backDefaultSprite.height - loadDefaultLoader.height) * 0.5;
|
|
backDefaultSprite.addChild(loadDefaultSprite);
|
|
loadDefaultLoader.mask = loadDefaultSprite;
|
|
backDefaultSprite.addChild(playDefaultLoader);
|
|
playDefaultLoader.y = (backDefaultSprite.height - playDefaultLoader.height) * 0.5;
|
|
backDefaultSprite.addChild(playDefaultSprite);
|
|
playDefaultLoader.mask = playDefaultSprite;
|
|
THIS.addChild(backDefaultSprite);
|
|
backDefaultSprite.visible = false;
|
|
MOBJ["simpleSchedule"] = {
|
|
backDefaultSprite: backDefaultSprite,
|
|
backgroundDefaultLoader: backgroundDefaultLoader,
|
|
loadDefaultLoader: loadDefaultLoader,
|
|
loadDefaultSprite: loadDefaultSprite,
|
|
playDefaultLoader: playDefaultLoader,
|
|
playDefaultSprite: playDefaultSprite
|
|
};
|
|
//script.traceObject(MOBJ);
|
|
simpleScheduleResize();
|
|
}
|
|
loadDefaultBackgroundImg();
|
|
}
|
|
//获取当前播放时间
|
|
private function getFormatTime(timeStr: String, nowTime: Number = -1): String {
|
|
var nowDate: Date = new Date();
|
|
if (C.CONFIG["config"]["time"] > 0) {
|
|
//trace(C.CONFIG["config"]["time"]);
|
|
nowDate = new Date(C.CONFIG["config"]["time"]);
|
|
}
|
|
//trace(nowDate);
|
|
var yearY: int = nowDate.fullYear;
|
|
var month: int = nowDate.month + 1;
|
|
var date: int = nowDate.date;
|
|
var hours: int = nowDate.hours;
|
|
var minutes: int = nowDate.minutes;
|
|
var seconds: int = nowDate.seconds;
|
|
|
|
var yeary: String = yearY.toString().substr(2, 2);
|
|
var monthh: String = month < 10 ? "0" + month : month.toString();
|
|
var datee: String = date < 10 ? "0" + date : date.toString();
|
|
var hourss: String = hours < 10 ? "0" + hours : hours.toString();
|
|
var minutess: String = minutes < 10 ? "0" + minutes : minutes.toString();
|
|
var secondss: String = seconds < 10 ? "0" + seconds : seconds.toString();
|
|
/*liveTimey:yeary,//liveTimey
|
|
liveTimeY:yearY,
|
|
liveTimem:monthh,
|
|
liveTimed:hourss,
|
|
liveTimeh:hourss,
|
|
liveTimei:minutess,
|
|
liveTimes:secondss,*/
|
|
//trace(nowTime , timeNow);
|
|
var timeArr: Array = script.formatTime(nowTime > -1 ? nowTime : timeNow, C.CONFIG["config"]["liveAndVod"]["open"] ? C.CONFIG["config"]["liveAndVod"]["vodTime"] : 0, C.CONFIG["config"]["liveAndVod"]["open"] ? hours : 0);
|
|
//trace(timeArr);
|
|
var totalArr: Array = script.formatTime(timeTotal);
|
|
for (var i: int = 0; i < totalArr.length; i++) {
|
|
timeArr.push(totalArr[i]);
|
|
}
|
|
timeArr.push(yeary, yearY, monthh, datee, hourss, minutess, secondss);
|
|
timeArr.push(LANGUAGE["live"]);
|
|
timeArr.push(LANGUAGE["vod"]);
|
|
//timeArr.push(LANGUAGE["vod"]);
|
|
//timeArr.push(LANGUAGE["liveAndVod"]);
|
|
var timeStrArr: Array = ["[$timeh]", "[$timei]", "[$timeI]", "[$times]", "[$timeS]", "[$durationh]", "[$durationi]", "[$durationI]", "[$durations]", "[$durationS]",
|
|
"[$liveTimey]", "[$liveTimeY]", "[$liveTimem]", "[$liveTimed]", "[$liveTimeh]", "[$liveTimei]", "[$liveTimes]", "[$liveLanguage]", "[$vodLanguage]"
|
|
];
|
|
//trace(timeStrArr);
|
|
if (FLASHVARS["live"]) {
|
|
return script.strReplace(script.strReplace(LANGUAGE["live"], timeStrArr, timeArr), timeStrArr, timeArr);
|
|
} else if (C.CONFIG["config"]["liveAndVod"]["open"]) {
|
|
return script.strReplace(script.strReplace(LANGUAGE["liveAndVod"], timeStrArr, timeArr), timeStrArr, timeArr);
|
|
} else {
|
|
return script.strReplace(script.strReplace(timeStr, timeStrArr, timeArr), timeStrArr, timeArr);
|
|
|
|
}
|
|
|
|
}
|
|
//获取当前播放时间
|
|
private function getFormatLiveTime(): Object {
|
|
var nowDate: Date = new Date();
|
|
if (C.CONFIG["config"]["time"] > 0) {
|
|
nowDate = new Date(C.CONFIG["config"]["time"]);
|
|
}
|
|
var hours: int = nowDate.hours;
|
|
var minutes: int = nowDate.minutes;
|
|
var seconds: int = nowDate.seconds;
|
|
return {
|
|
hours: hours,
|
|
minutes: minutes,
|
|
seconds: seconds
|
|
};
|
|
}
|
|
//调整点播时间文本框
|
|
private function vodTimeTextResize(): void {
|
|
if (MOBJ.hasOwnProperty("timeVodText") && MOBJ["timeVodText"] != null) {
|
|
var timeTextArr: Array = MOBJ["timeVodText"];
|
|
var timeText: Object = STYLE["controlBar"]["timeText"]["vod"];
|
|
var vodArr: Array = [];
|
|
if (script.getType(timeText) != "array") {
|
|
vodArr.push(timeText);
|
|
} else {
|
|
vodArr = STYLE["controlBar"]["timeText"]["vod"];
|
|
}
|
|
for (var i: int = 0; i < timeTextArr.length; i++) {
|
|
var coor: Object = coorDinate(vodArr[i]);
|
|
timeTextArr[i].x = coor["x"];
|
|
timeTextArr[i].y = coor["y"];
|
|
M.addChild(timeTextArr[i]);
|
|
}
|
|
}
|
|
}
|
|
//调整直播时间文本框
|
|
private function liveTimeTextResize(): void {
|
|
if (MOBJ.hasOwnProperty("timeLiveText") && MOBJ["timeLiveText"] != null) {
|
|
var timeTextArr: Array = MOBJ["timeLiveText"];
|
|
var timeText: Object = STYLE["controlBar"]["timeText"]["live"];
|
|
var liveArr: Array = [];
|
|
if (script.getType(timeText) != "array") {
|
|
liveArr.push(timeText);
|
|
} else {
|
|
liveArr = STYLE["controlBar"]["timeText"]["live"];
|
|
}
|
|
for (var i: int = 0; i < timeTextArr.length; i++) {
|
|
var coor: Object = coorDinate(liveArr[i]);
|
|
timeTextArr[i].x = coor["x"];
|
|
timeTextArr[i].y = coor["y"];
|
|
M.addChild(timeTextArr[i]);
|
|
}
|
|
}
|
|
}
|
|
//加载点播时间文本框
|
|
private function loadVodTimeText(): void {
|
|
if (!STYLE["controlBar"]["timeText"].hasOwnProperty("vod")) {
|
|
return;
|
|
}
|
|
var vodArr: Array = [];
|
|
var textArr: Array = [];
|
|
var timeTextArr: Array = [];
|
|
if (script.getType(STYLE["controlBar"]["timeText"]["vod"]) != "array") {
|
|
vodArr.push(STYLE["controlBar"]["timeText"]["vod"]);
|
|
} else {
|
|
vodArr = STYLE["controlBar"]["timeText"]["vod"];
|
|
}
|
|
for (var i: int = 0; i < vodArr.length; i++) {
|
|
var obj: Object = {
|
|
text: getFormatTime(vodArr[i]["text"]),
|
|
color: vodArr[i]["color"],
|
|
size: vodArr[i]["size"],
|
|
font: vodArr[i]["font"],
|
|
alpha: vodArr[i]["alpha"],
|
|
bold: vodArr[i]["bold"]
|
|
};
|
|
var newText: TextField = element.newText(obj);
|
|
M.addChild(newText);
|
|
timeTextArr.push(newText);
|
|
}
|
|
MOBJ["timeVodText"] = timeTextArr;
|
|
vodTimeTextResize();
|
|
|
|
}
|
|
|
|
//加载直播时间文本框
|
|
private function loadLiveTimeText(): void {
|
|
if (!STYLE["controlBar"]["timeText"].hasOwnProperty("live")) {
|
|
return;
|
|
}
|
|
var timeText: Object = STYLE["controlBar"]["timeText"]["live"];
|
|
var liveArr: Array = [];
|
|
var textArr: Array = [];
|
|
var timeTextArr: Array = [];
|
|
if (script.getType(timeText) != "array") {
|
|
liveArr.push(timeText);
|
|
} else {
|
|
liveArr = STYLE["controlBar"]["timeText"]["live"];
|
|
}
|
|
for (var i: int = 0; i < liveArr.length; i++) {
|
|
var obj: Object = {
|
|
text: getFormatTime(liveArr[i]["text"]),
|
|
color: liveArr[i]["color"],
|
|
size: liveArr[i]["size"],
|
|
font: liveArr[i]["font"],
|
|
alpha: liveArr[i]["alpha"],
|
|
bold: liveArr[i]["bold"]
|
|
};
|
|
var newText: TextField = element.newText(obj);
|
|
M.addChild(newText);
|
|
timeTextArr.push(newText);
|
|
}
|
|
MOBJ["timeLiveText"] = timeTextArr;
|
|
liveTimeTextResize();
|
|
}
|
|
//调用错误提示文本框
|
|
private function errorShowResize(): void {
|
|
if (errorText) {
|
|
var coor: Object = coorDinate(STYLE["error"]);
|
|
errorText.x = coor["x"];
|
|
errorText.y = coor["y"];
|
|
}
|
|
}
|
|
|
|
//加载全局自定义
|
|
private function loadCustom(): void {
|
|
var buttonObj: Object = {};
|
|
var k: String = "";
|
|
var obj: Object = {};
|
|
var button: Sprite = null;
|
|
if (STYLE.hasOwnProperty("custom")) {
|
|
if (STYLE["custom"].hasOwnProperty("button")) {
|
|
buttonObj = STYLE["custom"]["button"];
|
|
for (k in buttonObj) {
|
|
obj = buttonObj[k];
|
|
if (obj.hasOwnProperty("mouseOut") && obj["mouseOver"]) {
|
|
loaderNum++;
|
|
button = element.imgButton(obj, k, imgLoaded);
|
|
if (!MOBJ.hasOwnProperty("vcustomButton")) {
|
|
MOBJ["vcustomButton"] = {};
|
|
}
|
|
MOBJ["vcustomButton"][k] = button
|
|
if (STYLE["custom"]["button"][k].hasOwnProperty("show") && STYLE["custom"]["button"][k]["show"] == "false") {
|
|
button.visible = false;
|
|
}
|
|
THIS.addChild(button);
|
|
button.addEventListener(MouseEvent.MOUSE_OVER, function (event: MouseEvent) {
|
|
//trace("event.target.name:",event.target.name);
|
|
showVButtonCustomPrompt(event.target.name);
|
|
});
|
|
button.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
}
|
|
}
|
|
}
|
|
//加载自定义的文本
|
|
if (STYLE["custom"].hasOwnProperty("text")) {
|
|
buttonObj = STYLE["custom"]["text"];
|
|
for (k in buttonObj) {
|
|
obj = buttonObj[k];
|
|
if (obj.hasOwnProperty("text")) {
|
|
var textTemp: String = getFormatText(obj["text"]);
|
|
if (textTemp) {
|
|
var newText: TextField = element.newText({
|
|
text: textTemp,
|
|
color: obj["color"],
|
|
size: obj["size"],
|
|
font: obj["font"],
|
|
alpha: obj["alpha"],
|
|
bold: obj["bold"]
|
|
});
|
|
THIS.addChild(newText);
|
|
if (!MOBJ.hasOwnProperty("vcustomText")) {
|
|
MOBJ["vcustomText"] = {};
|
|
}
|
|
MOBJ["vcustomText"][k] = newText;
|
|
if (STYLE["custom"]["text"][k].hasOwnProperty("show") && STYLE["custom"]["text"][k]["show"] == "false") {
|
|
newText.visible = false;
|
|
}
|
|
loadCustomResize();
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
//加载自定义的图片
|
|
//trace("是否有自定义的图片",STYLE["custom"].hasOwnProperty("images"));
|
|
if (STYLE["custom"].hasOwnProperty("images")) {
|
|
buttonObj = STYLE["custom"]["images"];
|
|
//trace(buttonObj);
|
|
script.traceObject(buttonObj);
|
|
for (k in buttonObj) {
|
|
obj = buttonObj[k];
|
|
|
|
if (obj.hasOwnProperty("img")) {
|
|
loaderNum++;
|
|
var imgLoader: loadByteImg = new loadByteImg(obj["img"], function (byte: Loader = null, myName: String = "") {
|
|
//trace("===加载了吗");
|
|
if (byte) {
|
|
if (!MOBJ.hasOwnProperty("vcustomImages")) {
|
|
MOBJ["vcustomImages"] = {};
|
|
}
|
|
MOBJ["vcustomImages"][byte.name] = byte;
|
|
THIS.addChild(MOBJ["vcustomImages"][byte.name]);
|
|
if (STYLE["custom"]["images"][byte.name].hasOwnProperty("show") && STYLE["custom"]["images"][byte.name]["show"] == "false") {
|
|
MOBJ["vcustomImages"][byte.name].visible = false;
|
|
}
|
|
loadCustomResize();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"custom\"][\"images\"][\"" + myName + "\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
imgLoader = null;
|
|
}, k);
|
|
}
|
|
}
|
|
}
|
|
//加载自定义的swf插件
|
|
if (STYLE["custom"].hasOwnProperty("swf")) {
|
|
buttonObj = STYLE["custom"]["swf"];
|
|
for (k in buttonObj) {
|
|
obj = buttonObj[k];
|
|
if (obj.hasOwnProperty("swf")) {
|
|
loaderNum++;
|
|
var swfLoader: loadByteImg = new loadByteImg(obj["swf"], function (byte: Loader = null, myName: String = "") {
|
|
if (byte) {
|
|
if (!MOBJ.hasOwnProperty("vcustomSwf")) {
|
|
MOBJ["vcustomSwf"] = {};
|
|
}
|
|
MOBJ["vcustomSwf"][byte.name] = byte;
|
|
THIS.addChild(MOBJ["vcustomSwf"][byte.name]);
|
|
if (STYLE["custom"]["swf"][byte.name].hasOwnProperty("show") && STYLE["custom"]["swf"][byte.name]["show"] == "false") {
|
|
MOBJ["vcustomSwf"][byte.name].visible = false;
|
|
}
|
|
//传递播放器对象
|
|
var nObj: Object = STYLE["custom"]["swf"][byte.name];
|
|
if (nObj.hasOwnProperty("callActionScript") && nObj["callActionScript"]) {
|
|
var swfObj: Object = byte.content;
|
|
if (swfObj.hasOwnProperty("setAppObj")) {
|
|
if (swfObj.setAppObj.length == 2) {
|
|
swfObj.setAppObj(THIS, byte.name);
|
|
} else {
|
|
swfObj.setAppObj(THIS);
|
|
}
|
|
} else {
|
|
if (swfObj.hasOwnProperty("main")) {
|
|
if (swfObj.main.setAppObj.length == 2) {
|
|
swfObj.main.setAppObj(THIS, byte.name);
|
|
} else {
|
|
swfObj.main.setAppObj(THIS);
|
|
}
|
|
} else {
|
|
new log("error:Cannot call function STYLE[\"custom\"][\"swf\"][\"" + myName + "\"][\"callActionScript\"]/" + nObj["callActionScript"] + "()");
|
|
}
|
|
}
|
|
|
|
//
|
|
}
|
|
loadCustomResize();
|
|
imgLoaded();
|
|
//传递播放器对象结束
|
|
controlBarResize();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"custom\"][\"swf\"][\"" + myName + "\"]");
|
|
|
|
}
|
|
swfLoader = null;
|
|
}, k);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
loadCustomResize();
|
|
}
|
|
//加载前置后置广告
|
|
private function loadAdvertisement(): void {
|
|
var adObj: Object = STYLE["advertisement"];
|
|
var button: Sprite = null;
|
|
MOBJ["advertisement"] = {};
|
|
var obj: Object = {};
|
|
function loadAdBackground() {
|
|
//加载纯色层
|
|
//加载背景
|
|
if (adObj.hasOwnProperty("background")) {
|
|
var bgSprite: Sprite = null;
|
|
var bg: Object = adObj["background"];
|
|
var elementObj: Object = {
|
|
backgroundColor: bg["backgroundColor"],
|
|
backgroundAlpha: bg["alpha"],
|
|
width: stageW,
|
|
height: stageH
|
|
};
|
|
bgSprite = element.newSprite(elementObj);
|
|
MOBJ["advertisement"]["background"] = bgSprite;
|
|
}
|
|
loadAdCountDown();
|
|
}
|
|
function loadAdCountDown() {
|
|
//广告倒计时背景
|
|
|
|
if (adObj.hasOwnProperty("countDown")) {
|
|
|
|
var countDown: Object = adObj["countDown"];
|
|
if (countDown.hasOwnProperty("backgroundImg")) {
|
|
loaderNum++;
|
|
var backgroundImgLoader: loadByteImg = new loadByteImg(countDown["backgroundImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
byte.alpha = countDown["alpha"];
|
|
byte.width = countDown["width"];
|
|
byte.height = countDown["height"];
|
|
THIS.addChild(byte);
|
|
byte.visible = false;
|
|
MOBJ["advertisement"]["countDown"] = byte;
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"advertisement\"][\"countDown\"][\"backgroundImg\"]");
|
|
}
|
|
imgLoaded();
|
|
skipAdButtonLoad();
|
|
advertisementResize();
|
|
backgroundImgLoader = null;
|
|
});
|
|
} else {
|
|
var mObj: Object = {
|
|
backgroundColor: countDown["backgroundColor"],
|
|
backgroundAlpha: (countDown.hasOwnProperty("backgroundImg") && countDown["backgroundImg"]) ? 0 : countDown["alpha"], //背景透明度
|
|
width: countDown["width"],
|
|
height: countDown["height"],
|
|
radius: countDown["radius"]
|
|
};
|
|
var background: Sprite = element.newSprite(mObj);
|
|
MOBJ["advertisement"]["countDown"] = background;
|
|
advertisementResize();
|
|
skipAdButtonLoad();
|
|
}
|
|
} else {
|
|
skipAdButtonLoad();
|
|
}
|
|
advertisementResize();
|
|
}
|
|
function skipAdButtonLoad() {
|
|
if (adObj.hasOwnProperty("skipAdButton")) {
|
|
obj = adObj["skipAdButton"];
|
|
if (obj.hasOwnProperty("mouseOut") && obj["mouseOver"]) {
|
|
loaderNum++;
|
|
button = element.imgButton(obj, "skipAdButton", imgLoaded);
|
|
MOBJ["advertisement"]["skipAdButton"] = button
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
advertisementResize();
|
|
}
|
|
}
|
|
loadAdSkipDelay();
|
|
|
|
}
|
|
function loadAdSkipDelay() {
|
|
//延时显示跳过广告按钮倒计时背景
|
|
if (adObj.hasOwnProperty("skipDelay")) {
|
|
var skipDelay: Object = adObj["skipDelay"];
|
|
if (skipDelay.hasOwnProperty("backgroundImg")) {
|
|
loaderNum++;
|
|
var backgroundImgLoader: loadByteImg = new loadByteImg(skipDelay["backgroundImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
byte.alpha = skipDelay["alpha"];
|
|
byte.width = skipDelay["width"];
|
|
byte.height = skipDelay["height"];
|
|
MOBJ["advertisement"]["skipDelay"] = byte;
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"advertisement\"][\"skipDelay\"][\"backgroundImg\"]");
|
|
}
|
|
imgLoaded();
|
|
nuteButtonLoad();
|
|
advertisementResize();
|
|
backgroundImgLoader = null;
|
|
});
|
|
} else {
|
|
var mObj: Object = {
|
|
backgroundColor: skipDelay["backgroundColor"],
|
|
backgroundAlpha: (skipDelay.hasOwnProperty("backgroundImg") && skipDelay["backgroundImg"]) ? 0 : skipDelay["alpha"], //背景透明度
|
|
width: skipDelay["width"],
|
|
height: skipDelay["height"],
|
|
radius: skipDelay["radius"]
|
|
};
|
|
var background: Sprite = element.newSprite(mObj);
|
|
MOBJ["advertisement"]["skipDelay"] = background;
|
|
advertisementResize();
|
|
nuteButtonLoad();
|
|
}
|
|
} else {
|
|
nuteButtonLoad();
|
|
}
|
|
advertisementResize();
|
|
}
|
|
function nuteButtonLoad() {
|
|
if (adObj.hasOwnProperty("muteButton") && adObj.hasOwnProperty("escMuteButton")) {
|
|
obj = adObj["muteButton"];
|
|
if (obj.hasOwnProperty("mouseOut") && obj["mouseOver"]) {
|
|
loaderNum++;
|
|
button = element.imgButton(obj, "muteButton", imgLoaded);
|
|
MOBJ["advertisement"]["muteButton"] = button
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
advertisementResize();
|
|
}
|
|
obj = adObj["escMuteButton"];
|
|
if (obj.hasOwnProperty("mouseOut") && obj["mouseOver"]) {
|
|
loaderNum++;
|
|
button = element.imgButton(obj, "escMuteButton", imgLoaded);
|
|
MOBJ["advertisement"]["escMuteButton"] = button;
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
advertisementResize();
|
|
}
|
|
}
|
|
closeButtonLoad();
|
|
}
|
|
function closeButtonLoad() {
|
|
if (adObj.hasOwnProperty("closeButton")) {
|
|
obj = adObj["closeButton"];
|
|
if (obj.hasOwnProperty("mouseOut") && obj["mouseOver"]) {
|
|
loaderNum++;
|
|
button = element.imgButton(obj, "closeButton", imgLoaded);
|
|
MOBJ["advertisement"]["closeButton"] = button;
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
advertisementResize();
|
|
}
|
|
}
|
|
adLinkButtonLoad();
|
|
}
|
|
function adLinkButtonLoad() {
|
|
if (adObj.hasOwnProperty("adLinkButton")) {
|
|
obj = adObj["adLinkButton"];
|
|
if (obj.hasOwnProperty("mouseOut") && obj["mouseOver"]) {
|
|
loaderNum++;
|
|
button = element.imgButton(obj, "adLinkButton", imgLoaded);
|
|
MOBJ["advertisement"]["adLinkButton"] = button;
|
|
button.visible = false;
|
|
THIS.addChild(button);
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
|
|
}
|
|
advertisementResize();
|
|
} else {
|
|
advertisementResize();
|
|
}
|
|
}
|
|
loadAdBackground();
|
|
}
|
|
|
|
//广告相关的变化
|
|
private function advertisementResize(): void {
|
|
if (MOBJ.hasOwnProperty("advertisement")) {
|
|
var adObj: Object = STYLE["advertisement"];
|
|
var advertisement: Object = MOBJ["advertisement"];
|
|
var newCoor: Object = {};
|
|
if (advertisement.hasOwnProperty("background")) {
|
|
advertisement["background"].width = stageW;
|
|
advertisement["background"].height = stageH;
|
|
}
|
|
for (var k: String in advertisement) {
|
|
if (k != "background") {
|
|
if (k != "closeButton") {
|
|
newCoor = coorDinate(adObj[k]);
|
|
} else {
|
|
newCoor = coorDinate(adObj[k], pause);
|
|
newCoor["x"] += pause.x;
|
|
newCoor["y"] += pause.y;
|
|
if (newCoor["x"] < 0) {
|
|
newCoor["x"] = 0;
|
|
}
|
|
if (newCoor["x"] > stageW - MOBJ["advertisement"]["closeButton"].width) {
|
|
newCoor["x"] = stageW - MOBJ["advertisement"]["closeButton"].width;
|
|
}
|
|
if (newCoor["y"] < 0) {
|
|
newCoor["y"] = 0;
|
|
}
|
|
if (newCoor["y"] > stageH - MOBJ["advertisement"]["closeButton"].height) {
|
|
newCoor["y"] = stageH - MOBJ["advertisement"]["closeButton"].height;
|
|
}
|
|
}
|
|
MOBJ["advertisement"][k].x = newCoor["x"];
|
|
MOBJ["advertisement"][k].y = newCoor["y"];
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
//加载中间播放按钮
|
|
private function centerPlayResize(): void {
|
|
if (MOBJ.hasOwnProperty("centerPlay")) {
|
|
var newCoor: Object = coorDinate(STYLE["centerPlay"]);
|
|
MOBJ["centerPlay"].x = newCoor["x"];
|
|
MOBJ["centerPlay"].y = newCoor["y"];
|
|
}
|
|
}
|
|
|
|
//加载控制栏按钮
|
|
private function loadControlBarButton(): void {
|
|
var obj: Object = {};
|
|
var buttonObj: Object = STYLE["controlBar"]["button"];
|
|
var button: Sprite = null;
|
|
var k: String = "";
|
|
for (k in buttonObj) {
|
|
obj = buttonObj[k];
|
|
if (obj.hasOwnProperty("mouseOut") && obj["mouseOver"]) {
|
|
loaderNum++;
|
|
button = element.imgButton(obj, k, imgLoaded);
|
|
if (!MOBJ.hasOwnProperty("button")) {
|
|
MOBJ["button"] = {};
|
|
}
|
|
MOBJ["button"][k] = button
|
|
M.addChild(button);
|
|
button.addEventListener(MouseEvent.MOUSE_OVER, function (event: MouseEvent) {
|
|
showButtonPrompt(event.target.name);
|
|
});
|
|
button.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
}
|
|
}
|
|
if (FLASHVARS["autoplay"]) {
|
|
MOBJ["button"]["play"].visible = false;
|
|
MOBJ["button"]["pause"].visible = true;
|
|
} else {
|
|
MOBJ["button"]["play"].visible = true;
|
|
MOBJ["button"]["pause"].visible = false;
|
|
}
|
|
if (FLASHVARS["volume"] > 0) {
|
|
MOBJ["button"]["mute"].visible = true;
|
|
MOBJ["button"]["escMute"].visible = false;
|
|
} else {
|
|
MOBJ["button"]["mute"].visible = false;
|
|
MOBJ["button"]["escMute"].visible = true;
|
|
}
|
|
MOBJ["button"]["escFull"].visible = false;
|
|
MOBJ["button"]["backLive"].visible = false;
|
|
//加载中间播放按钮
|
|
if (STYLE.hasOwnProperty("centerPlay")) {
|
|
obj = STYLE["centerPlay"];
|
|
if (obj.hasOwnProperty("mouseOut") && obj["mouseOver"]) {
|
|
loaderNum++;
|
|
button = element.imgButton(obj, "centerPlay", imgLoaded);
|
|
MOBJ["centerPlay"] = button
|
|
THIS.addChild(button);
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
centerPlayResize();
|
|
showCenterPlay(false);
|
|
}
|
|
}
|
|
//加载自定义的按钮
|
|
if (STYLE["controlBar"].hasOwnProperty("custom")) {
|
|
if (STYLE["controlBar"]["custom"].hasOwnProperty("button")) {
|
|
buttonObj = STYLE["controlBar"]["custom"]["button"];
|
|
for (k in buttonObj) {
|
|
obj = buttonObj[k];
|
|
if (obj.hasOwnProperty("mouseOut") && obj["mouseOut"]!="") {
|
|
loaderNum++;
|
|
button = element.imgButton(obj, k, imgLoaded);
|
|
if (!MOBJ.hasOwnProperty("customButton")) {
|
|
MOBJ["customButton"] = {};
|
|
}
|
|
MOBJ["customButton"][k] = button;
|
|
if (STYLE["controlBar"]["custom"]["button"][k].hasOwnProperty("show") && STYLE["controlBar"]["custom"]["button"][k]["show"] == "false") {
|
|
button.visible = false;
|
|
}
|
|
M.addChild(button);
|
|
button.addEventListener(MouseEvent.MOUSE_OVER, function (event: MouseEvent) {
|
|
showButtonCustomPrompt(event.target.name);
|
|
});
|
|
button.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
|
|
button.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
}
|
|
}
|
|
}
|
|
|
|
//加载自定义的文本
|
|
if (STYLE["controlBar"]["custom"].hasOwnProperty("text")) {
|
|
buttonObj = STYLE["controlBar"]["custom"]["text"];
|
|
for (k in buttonObj) {
|
|
obj = buttonObj[k];
|
|
if (obj.hasOwnProperty("text")) {
|
|
var textTemp: String = getFormatText(obj["text"]);
|
|
if (textTemp) {
|
|
var newText: TextField = element.newText({
|
|
text: textTemp,
|
|
color: obj["color"],
|
|
size: obj["size"],
|
|
font: obj["font"],
|
|
alpha: obj["alpha"],
|
|
bold: obj["bold"]
|
|
});
|
|
M.addChild(newText);
|
|
|
|
if (!MOBJ.hasOwnProperty("customText")) {
|
|
MOBJ["customText"] = {};
|
|
}
|
|
if (STYLE["controlBar"]["custom"]["text"][k].hasOwnProperty("show") && STYLE["controlBar"]["custom"]["text"][k]["show"] == "false") {
|
|
newText.visible = false;
|
|
}
|
|
MOBJ["customText"][k] = newText
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
//加载自定义的图片
|
|
if (STYLE["controlBar"]["custom"].hasOwnProperty("images")) {
|
|
buttonObj = STYLE["controlBar"]["custom"]["images"];
|
|
for (k in buttonObj) {
|
|
obj = buttonObj[k];
|
|
if (obj.hasOwnProperty("img")) {
|
|
loaderNum++;
|
|
var imgLoader: loadByteImg = new loadByteImg(obj["img"], function (byte: Loader = null, myName: String = "") {
|
|
if (byte) {
|
|
if (!MOBJ.hasOwnProperty("customImages")) {
|
|
MOBJ["customImages"] = {};
|
|
}
|
|
MOBJ["customImages"][byte.name] = byte;
|
|
if (STYLE["controlBar"]["custom"]["images"][byte.name].hasOwnProperty("show") && STYLE["controlBar"]["custom"]["images"][byte.name]["show"] == "false") {
|
|
MOBJ["customImages"][byte.name].visible = false;
|
|
}
|
|
M.addChild(MOBJ["customImages"][byte.name]);
|
|
controlBarResize();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"custom\"][\"images\"][\"" + myName + "\"]");
|
|
|
|
}
|
|
imgLoaded();
|
|
imgLoader = null;
|
|
}, k);
|
|
}
|
|
}
|
|
}
|
|
//加载自定义的swf插件
|
|
if (STYLE["controlBar"]["custom"].hasOwnProperty("swf")) {
|
|
buttonObj = STYLE["controlBar"]["custom"]["swf"];
|
|
for (k in buttonObj) {
|
|
obj = buttonObj[k];
|
|
if (obj.hasOwnProperty("swf")) {
|
|
loaderNum++;
|
|
var swfLoader: loadByteImg = new loadByteImg(obj["swf"], function (byte: Loader = null, myName: String = "") {
|
|
if (byte) {
|
|
if (!MOBJ.hasOwnProperty("customSwf")) {
|
|
MOBJ["customSwf"] = {};
|
|
}
|
|
MOBJ["customSwf"][byte.name] = byte;
|
|
if (STYLE["controlBar"]["custom"]["swf"][byte.name].hasOwnProperty("show") && STYLE["controlBar"]["custom"]["swf"][byte.name]["show"] == "false") {
|
|
MOBJ["customSwf"][byte.name].visible = false;
|
|
}
|
|
M.addChild(MOBJ["customSwf"][byte.name]);
|
|
//传递播放器对象
|
|
var nObj: Object = STYLE["controlBar"]["custom"]["swf"][byte.name];
|
|
if (nObj.hasOwnProperty("callActionScript") && nObj["callActionScript"]) {
|
|
var swfObj: Object = byte.content;
|
|
if (swfObj.hasOwnProperty("setAppObj")) {
|
|
if (swfObj.setAppObj.length == 2) {
|
|
swfObj.setAppObj(THIS, byte.name);
|
|
} else {
|
|
swfObj.setAppObj(THIS);
|
|
}
|
|
|
|
} else {
|
|
if (swfObj.hasOwnProperty("main")) {
|
|
if (swfObj.main.setAppObj.length == 2) {
|
|
swfObj.main.setAppObj(THIS, byte.name);
|
|
} else {
|
|
swfObj.main.setAppObj(THIS);
|
|
}
|
|
} else {
|
|
new log("error:Cannot call function STYLE[\"controlBar\"][\"custom\"][\"swf\"][\"" + myName + "\"][\"callActionScript\"]/" + nObj["callActionScript"] + "()");
|
|
}
|
|
}
|
|
//
|
|
}
|
|
imgLoaded();
|
|
//传递播放器对象结束
|
|
controlBarResize();
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"controlBar\"][\"custom\"][\"swf\"][\"" + myName + "\"]");
|
|
|
|
}
|
|
swfLoader = null;
|
|
}, k);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
controlBarResize();
|
|
|
|
}
|
|
//格式化文本框里的内容
|
|
private function getFormatText(str: String = ""): String {
|
|
var newStr: String = "";
|
|
if (str.substr(0, 11) == "[flashvars]") {
|
|
newStr = script.strReplace(str, ["[flashvars]"], [""]);
|
|
if (FLASHVARS.hasOwnProperty(newStr)) {
|
|
newStr = FLASHVARS[newStr];
|
|
} else {
|
|
newStr = "";
|
|
}
|
|
} else {
|
|
newStr = str;
|
|
}
|
|
return newStr;
|
|
}
|
|
private function imgLoaded(): void {
|
|
imgButtonI++;
|
|
if (imgButtonI > loaderNum - 1 && loaderNum > 1) {
|
|
imgButtonI = -1000;
|
|
mMinXY = getMMinXY();
|
|
var index: int = 0;
|
|
if (background["background"]) {
|
|
index = 1;
|
|
}
|
|
intoFun(index);
|
|
}
|
|
}
|
|
//-------------------------------------------------------------------------------------------提示框结束
|
|
private function showButtonPrompt(k: String = ""): void {
|
|
if (k && LANGUAGE["buttonOver"].hasOwnProperty(k)) {
|
|
if (MOBJ["button"].hasOwnProperty(k)) {
|
|
var x: int = MOBJ["button"][k].x + M.x + MOBJ["button"][k].width * 0.5;
|
|
var y: int = MOBJ["button"][k].y + M.y;
|
|
showPrompt(LANGUAGE["buttonOver"][k], x, y)
|
|
}
|
|
}
|
|
}
|
|
private function showButtonCustomPrompt(k: String = ""): void {
|
|
if (k && LANGUAGE["buttonOver"].hasOwnProperty(k)) {
|
|
//script.traceObject(MOBJ["customButton"]);
|
|
if (MOBJ["customButton"].hasOwnProperty(k)) {
|
|
var x: int = MOBJ["customButton"][k].x + M.x + MOBJ["customButton"][k].width * 0.5;
|
|
var y: int = MOBJ["customButton"][k].y + M.y;
|
|
showPrompt(LANGUAGE["buttonOver"][k], x, y)
|
|
}
|
|
}
|
|
}
|
|
private function showVButtonCustomPrompt(k: String = ""): void {
|
|
if (k && LANGUAGE["buttonOver"].hasOwnProperty(k)) {
|
|
//script.traceObject(MOBJ);
|
|
|
|
if(MOBJ.hasOwnProperty("vcustomButton")){
|
|
//trace("==========",MOBJ["vcustomButton"][k].x);
|
|
if (MOBJ["vcustomButton"].hasOwnProperty(k)) {
|
|
//trace("==========d",MOBJ["vcustomButton"][k].x);
|
|
try{
|
|
var x: int = MOBJ["vcustomButton"][k].x + MOBJ["vcustomButton"][k].width * 0.5;
|
|
var y: int = MOBJ["vcustomButton"][k].y;
|
|
showPrompt(LANGUAGE["buttonOver"][k], x, y);
|
|
}
|
|
catch(event:ErrorEvent){}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
private function showPrompt(str: String = "", x: int = 0, y: int = 0): void {
|
|
if (prompt != null) {
|
|
THIS.removeChild(prompt);
|
|
prompt = null;
|
|
}
|
|
if (!str || !mShow) {
|
|
return;
|
|
}
|
|
var promptObj: Object = STYLE["prompt"];
|
|
var textObj: Object = {
|
|
text: str,
|
|
color: promptObj["color"],
|
|
size: promptObj["size"],
|
|
font: promptObj["font"],
|
|
bold: promptObj["bold"],
|
|
alpha: promptObj["alpha"]
|
|
};
|
|
var text: TextField = element.newText(textObj);
|
|
var bgObj: Object = {
|
|
backgroundColor: promptObj["backgroundColor"], //背景颜色
|
|
backgroundAlpha: promptObj["backgroundAlpha"], //背景透明度
|
|
border: promptObj["border"],
|
|
borderColor: promptObj["borderColor"], //边框颜色
|
|
radius: promptObj["radius"], //圆角弧度
|
|
width: text.width + Number(promptObj["paddingLeft"]) + Number(promptObj["paddingRight"]),
|
|
height: text.height + Number(promptObj["paddingTop"]) + Number(promptObj["paddingBottom"])
|
|
}
|
|
prompt = element.newSprite(bgObj);
|
|
prompt.addChild(text);
|
|
text.x = Number(promptObj["paddingLeft"]);
|
|
text.y = Number(promptObj["paddingTop"]);
|
|
//画倒三角
|
|
var triangleObj: Object = {
|
|
width: promptObj["triangleWidth"],
|
|
height: promptObj["triangleHeight"],
|
|
backgroundColor: promptObj["triangleBackgroundColor"],
|
|
border: promptObj["triangleBorder"],
|
|
borderColor: promptObj["triangleBorderColor"],
|
|
alpha: promptObj["triangleAlpha"]
|
|
};
|
|
var triangle: Sprite = element.newTriangle(triangleObj);
|
|
triangle.y = prompt.height + Number(promptObj["triangleDeviationY"]);
|
|
triangle.x = (prompt.width - triangle.width) * 0.5 + Number(promptObj["triangleDeviationX"]);
|
|
prompt.addChild(triangle);
|
|
//倒三角结束
|
|
prompt.x = x - prompt.width * 0.5;
|
|
prompt.y = y - prompt.height - Number(promptObj["marginBottom"]);
|
|
if (prompt.x < 0) {
|
|
prompt.x = 0;
|
|
}
|
|
if (prompt.x > stageW - prompt.width) {
|
|
prompt.x = stageW - prompt.width;
|
|
}
|
|
if (prompt.y < 0) {
|
|
prompt.y = 0;
|
|
}
|
|
if (prompt.y > stageH - prompt.height) {
|
|
prompt.y = stageH - prompt.height;
|
|
}
|
|
THIS.addChild(prompt);
|
|
}
|
|
//-------------------------------------------------------------------------------------------提示框结束
|
|
//===========================================================================================预览图提示文字
|
|
private function showPreviewPrompt(str: String = "", x: int = 0, y: int = 0): void {
|
|
if (previewPrompt != null) {
|
|
THIS.removeChild(previewPrompt);
|
|
previewPrompt = null;
|
|
}
|
|
if (!str) {
|
|
return;
|
|
}
|
|
var promptObj: Object = STYLE["previewPrompt"];
|
|
var textObj: Object = {
|
|
text: str,
|
|
color: promptObj["color"],
|
|
size: promptObj["size"],
|
|
font: promptObj["font"],
|
|
bold: promptObj["bold"],
|
|
alpha: promptObj["alpha"]
|
|
//height:160
|
|
};
|
|
if (Number(promptObj["textWidth"]) > 0) {
|
|
textObj["width"] = Number(promptObj["textWidth"]);
|
|
|
|
}
|
|
if (Number(promptObj["textHeight"]) > 0) {
|
|
textObj["height"] = Number(promptObj["textHeight"]);
|
|
|
|
}
|
|
var text: TextField = element.newText(textObj);
|
|
|
|
var bgObj: Object = {
|
|
backgroundColor: promptObj["backgroundColor"], //背景颜色
|
|
backgroundAlpha: promptObj["backgroundAlpha"], //背景透明度
|
|
border: promptObj["border"],
|
|
borderColor: promptObj["borderColor"], //边框颜色
|
|
radius: promptObj["radius"], //圆角弧度
|
|
width: text.width + Number(promptObj["paddingLeft"]) + Number(promptObj["paddingRight"]),
|
|
height: text.height + Number(promptObj["paddingTop"]) + Number(promptObj["paddingBottom"])
|
|
}
|
|
|
|
previewPrompt = element.newSprite(bgObj);
|
|
previewPrompt.addChild(text);
|
|
text.x = Number(promptObj["paddingLeft"]);
|
|
text.y = Number(promptObj["paddingTop"]);
|
|
var py: int = y - previewPrompt.height - Number(promptObj["marginBottom"]);
|
|
if (preview) {
|
|
py -= preview.height;
|
|
} else {
|
|
if (prompt) {
|
|
py -= prompt.height + 10;
|
|
}
|
|
}
|
|
previewPrompt.x = x - previewPrompt.width * 0.5;
|
|
previewPrompt.y = py;
|
|
|
|
if (previewPrompt.x < 0) {
|
|
previewPrompt.x = 0;
|
|
}
|
|
if (previewPrompt.x > stageW - previewPrompt.width) {
|
|
previewPrompt.x = stageW - previewPrompt.width;
|
|
}
|
|
if (previewPrompt.y < 0) {
|
|
previewPrompt.y = 0;
|
|
}
|
|
if (previewPrompt.y > stageH - previewPrompt.height) {
|
|
previewPrompt.y = stageH - previewPrompt.height;
|
|
}
|
|
//THIS.addChild(previewPrompt);
|
|
if (preview) {
|
|
THIS.addChildAt(previewPrompt, THIS.getChildIndex(preview) + 1);
|
|
} else {
|
|
THIS.addChild(previewPrompt);
|
|
}
|
|
|
|
}
|
|
//-------------------------------------------------------------------------------------------控制栏结束
|
|
//-------------------------------------------------------------------------------------------播放器背景
|
|
private function backgroundResize(): void {
|
|
//trace("import flash.display.StageDisplayState;",stageH);
|
|
if (background["background"]) {
|
|
var bg: Object = STYLE["background"];
|
|
var obj: Object = {
|
|
stageW: stageW,
|
|
stageH: stageH,
|
|
eleW: background["width"],
|
|
eleH: background["height"],
|
|
stretched: bg["stretched"],
|
|
align: bg["align"],
|
|
vAlign: bg["vAlign"],
|
|
spacingLeft: bg["spacingLeft"],
|
|
spacingTop: bg["spacingTop"],
|
|
spacingRight: bg["spacingRight"],
|
|
spacingBottom: bg["spacingBottom"]
|
|
};
|
|
var coor: Object = script.getCoor(obj);
|
|
background["background"].x = coor["x"];
|
|
background["background"].y = coor["y"];
|
|
background["background"].width = coor["width"];
|
|
background["background"].height = coor["height"];
|
|
}
|
|
if (clickSprite) {
|
|
clickSprite.width = stageW;
|
|
clickSprite.height = stageH;
|
|
}
|
|
}
|
|
private function loadBackGround(): void { //加载窗体背景
|
|
if (STYLE.hasOwnProperty("background")) {
|
|
var bg: Object = STYLE["background"];
|
|
var bgSprite: Sprite = null;
|
|
var elementObj: Object = {};
|
|
if (bg.hasOwnProperty("backgroundColor")) {
|
|
elementObj = {
|
|
backgroundColor: bg["backgroundColor"],
|
|
backgroundAlpha: bg["alpha"],
|
|
width: stageW,
|
|
height: stageH
|
|
};
|
|
bgSprite = element.newSprite(elementObj);
|
|
THIS.addChild(bgSprite);
|
|
background = {
|
|
background: bgSprite,
|
|
width: bgSprite.width,
|
|
height: bgSprite.height
|
|
};
|
|
}
|
|
elementObj = {
|
|
backgroundColor: 0xFFFFFF,
|
|
backgroundAlpha: 0,
|
|
width: stageW,
|
|
height: stageH
|
|
};
|
|
clickSprite = element.newSprite(elementObj);
|
|
clickSprite.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
if (bg.hasOwnProperty("backgroundImg") && bg["backgroundImg"]) {
|
|
if (bgSprite) {
|
|
THIS.removeChild(bgSprite);
|
|
}
|
|
var bgLoader: Loader = null;
|
|
loaderNum++;
|
|
var newLoader: loadByteImg = new loadByteImg(bg["backgroundImg"], function (byte: Loader = null) {
|
|
if (byte) {
|
|
bgLoader = byte;
|
|
bgLoader.alpha = bg["alpha"];
|
|
THIS.addChild(bgLoader);
|
|
background = {
|
|
background: bgLoader,
|
|
width: bgLoader.width,
|
|
height: bgLoader.height
|
|
};
|
|
} else {
|
|
new log("error:Failed to load STYLE[\"background\"][\"backgroundImg\"]");
|
|
}
|
|
THIS.addChild(clickSprite);
|
|
backgroundResize();
|
|
loadControlBar(); //加载控制栏
|
|
imgLoaded();
|
|
newLoader = null;
|
|
});
|
|
|
|
} else {
|
|
THIS.addChild(clickSprite);
|
|
backgroundResize();
|
|
loadControlBar(); //加载控制栏
|
|
}
|
|
//clickSprite
|
|
}
|
|
pause = element.newSprite({
|
|
backgroundColor: 0xFFFFFF,
|
|
backgroundAlpha: 0,
|
|
width: stageW,
|
|
height: stageH
|
|
});
|
|
}
|
|
//--------------------------------------------------------------------------------------------共用的调用事件
|
|
private function callEvent(buttonStyle: String = "", callName: String = ""): void {
|
|
var obj: Object = {};
|
|
//trace(buttonStyle, callName);
|
|
switch (buttonStyle) {
|
|
case "button":
|
|
if (mShow) {
|
|
obj = STYLE["controlBar"]["button"][callName];
|
|
}
|
|
break;
|
|
case "customButton":
|
|
if (mShow) {
|
|
obj = STYLE["controlBar"]["custom"]["button"][callName];
|
|
}
|
|
break;
|
|
case "vcustomButton":
|
|
obj = STYLE["custom"]["button"][callName];
|
|
break;
|
|
case "centerPlay":
|
|
obj = STYLE["centerPlay"];
|
|
break;
|
|
case "advertisement":
|
|
obj = STYLE["advertisement"][callName];
|
|
break;
|
|
}
|
|
if (!obj) {
|
|
return;
|
|
}
|
|
//script.traceObject(obj);
|
|
if (obj.hasOwnProperty("clickEvent") && obj["clickEvent"]) {
|
|
THIS["clickEvent"](obj["clickEvent"]);
|
|
}
|
|
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------鼠标单击事件
|
|
private function mouseClickHandler(event: MouseEvent): void {
|
|
//trace(event.currentTarget.name);
|
|
/*MOBJ["volume"] = {
|
|
backSprite: backSprite,
|
|
maskSprite: maskSprite,
|
|
buttonLoader: buttonLoader
|
|
};*/
|
|
if (MOBJ.hasOwnProperty("button")) {
|
|
if (MOBJ["button"].hasOwnProperty(event.target.name)) {
|
|
//trace("button",event.target.name);
|
|
callEvent("button", event.target.name);
|
|
return;
|
|
|
|
}
|
|
}
|
|
if (MOBJ.hasOwnProperty("vcustomButton")) {
|
|
if (MOBJ["vcustomButton"].hasOwnProperty(event.target.name)) {
|
|
callEvent("vcustomButton", event.target.name);
|
|
return;
|
|
|
|
}
|
|
}
|
|
if (MOBJ.hasOwnProperty("customButton")) {
|
|
if (MOBJ["customButton"].hasOwnProperty(event.target.name)) {
|
|
callEvent("customButton", event.target.name);
|
|
return;
|
|
|
|
}
|
|
}
|
|
if (MOBJ.hasOwnProperty("advertisement")) {
|
|
if (MOBJ["advertisement"].hasOwnProperty(event.target.name)) {
|
|
callEvent("advertisement", event.target.name);
|
|
return;
|
|
|
|
}
|
|
}
|
|
if (MOBJ.hasOwnProperty("centerPlay")) {
|
|
if (event.target.name == "centerPlay") {
|
|
callEvent("centerPlay", event.target.name);
|
|
return;
|
|
}
|
|
|
|
}
|
|
switch (event.currentTarget) {
|
|
case clickSprite:
|
|
//THIS["videoPlay"]();
|
|
//callEvent("videoClick", {x:event.stageX,y:event.stageY});
|
|
videoSpriteXY={x:event.stageX,y:event.stageY}
|
|
clickMoveClickHanler();
|
|
break;
|
|
case MOBJ["timeSlider"]["backgroundDefaultLoader"]:
|
|
case MOBJ["timeSlider"]["loadDefaultLoader"]:
|
|
case MOBJ["timeSlider"]["playDefaultLoader"]:
|
|
|
|
if (timeTotal == 0 || FLASHVARS["live"]) {
|
|
break;
|
|
}
|
|
//trace(MOBJ["timeSlider"]["backDefaultSprite"].mouseX,MOBJ["timeSlider"]["backgroundDefaultLoader"].width);
|
|
var mx: int = MOBJ["timeSlider"]["backDefaultSprite"].mouseX;
|
|
|
|
var bw: int = MOBJ["timeSlider"]["backgroundDefaultLoader"].width;
|
|
if (mx > bw - 2) {
|
|
mx = bw;
|
|
}
|
|
var value: int = int(mx * timeTotal / bw);
|
|
if (value > timeTotal) {
|
|
value = timeTotal;
|
|
}
|
|
if (value < 0) {
|
|
value = 0;
|
|
}
|
|
if (!isFast(value)) {
|
|
break;
|
|
}
|
|
//根据配置进行判断
|
|
//trace("+++++", value, timeNow);
|
|
|
|
timeFollow = true;
|
|
timePlaySliderChange(value);
|
|
timeFollow = false;
|
|
//trace("是否跟着走timeFollow03",timeFollow);
|
|
THIS["videoSeek"](value, false); //调用主程序里的调节时间并且改变调用滑块
|
|
//trace(MOBJ["timeSlider"]["backDefaultSprite"].mouseX,MOBJ["timeSlider"]["backgroundDefaultLoader"].width,value,"v");
|
|
//showPrompt(getFormatTime(LANGUAGE["timeSliderOver"], value), event.stageX, event.stageY - pointTemp.y);
|
|
break;
|
|
case MOBJ["volumeSlider"]["backgroundLoader"]:
|
|
case MOBJ["volumeSlider"]["maskLoader"]:
|
|
var vol: Number = Math.round(MOBJ["volumeSlider"]["backSprite"].mouseX * 100 / MOBJ["volumeSlider"]["backSprite"].width) * 0.01;
|
|
THIS["changeVolume"](vol); //调用主程序里的调节音量并且改变调用滑块
|
|
break;
|
|
case MOBJ["definitionDefault"]:
|
|
if (MOBJ.hasOwnProperty("definitionBack") && MOBJ["definitionBack"] != null) {
|
|
MOBJ["definitionBack"].visible = true;
|
|
definitionTimerStart();
|
|
}
|
|
break;
|
|
case MOBJ["subtitleDefault"]:
|
|
//trace("===========================",MOBJ.hasOwnProperty("subtitleBack"),MOBJ["subtitleBack"]);
|
|
if (MOBJ.hasOwnProperty("subtitleBack") && MOBJ["subtitleBack"] != null) {
|
|
//trace("显示");
|
|
MOBJ["subtitleBack"].visible = true;
|
|
subtitleTimerStart();
|
|
}
|
|
break;
|
|
default:
|
|
if (event.target.name.toString().indexOf("spirte_") > -1) {
|
|
var ni: int = Number(event.target.name.toString().replace("spirte_", ""));
|
|
var time: int = promptSpotObjArr[ni]["time"];
|
|
if (!isFast(time)) {
|
|
break;
|
|
}
|
|
timeFollow = true;
|
|
timePlaySliderChange(time);
|
|
timeFollow = false;
|
|
//trace("是否跟着走timeFollow04",timeFollow);
|
|
THIS["videoSeek"](time, false); //调用主程序里的调节时间并且改变调用滑块
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
private function definitionTimerStart(): void {
|
|
//definitionTimer
|
|
if (!definitionTimer) {
|
|
definitionTimer = new timeInterval(100, definitionTimerHandler);
|
|
}
|
|
definitionTimer.start();
|
|
}
|
|
private function definitionTimerHandler(): void {
|
|
var mx: int = M.mouseX,
|
|
my: int = M.mouseY;
|
|
var minX: int = MOBJ["definitionDefault"].x < MOBJ["definitionBack"].x ? MOBJ["definitionDefault"].x : MOBJ["definitionBack"].x;
|
|
var minY: int = MOBJ["definitionDefault"].y < MOBJ["definitionBack"].y ? MOBJ["definitionDefault"].y : MOBJ["definitionBack"].y;
|
|
var maxX: int = MOBJ["definitionDefault"].x + MOBJ["definitionDefault"].width > MOBJ["definitionBack"].x + MOBJ["definitionBack"].width ? MOBJ["definitionDefault"].x + MOBJ["definitionDefault"].width : MOBJ["definitionBack"].x + MOBJ["definitionBack"].width;
|
|
var maxY: int = MOBJ["definitionDefault"].y + MOBJ["definitionDefault"].height > MOBJ["definitionBack"].y + MOBJ["definitionBack"].height ? MOBJ["definitionDefault"].y + MOBJ["definitionDefault"].height : MOBJ["definitionBack"].y + MOBJ["definitionBack"].height;
|
|
if (mx < minX || mx > maxX || my < minY || my > maxY) {
|
|
MOBJ["definitionBack"].visible = false;
|
|
definitionTimer.stop();
|
|
}
|
|
}
|
|
private function subtitleTimerStart(): void {
|
|
//definitionTimer
|
|
if (!subtitleTimer) {
|
|
subtitleTimer = new timeInterval(100, subtitleTimerHandler);
|
|
}
|
|
subtitleTimer.start();
|
|
}
|
|
private function subtitleTimerHandler(): void {
|
|
var mx: int = M.mouseX,
|
|
my: int = M.mouseY;
|
|
var minX: int = MOBJ["subtitleDefault"].x < MOBJ["subtitleBack"].x ? MOBJ["subtitleDefault"].x : MOBJ["subtitleBack"].x;
|
|
var minY: int = MOBJ["subtitleDefault"].y < MOBJ["subtitleBack"].y ? MOBJ["subtitleDefault"].y : MOBJ["subtitleBack"].y;
|
|
var maxX: int = MOBJ["subtitleDefault"].x + MOBJ["subtitleDefault"].width > MOBJ["subtitleBack"].x + MOBJ["subtitleBack"].width ? MOBJ["subtitleDefault"].x + MOBJ["subtitleDefault"].width : MOBJ["subtitleBack"].x + MOBJ["subtitleBack"].width;
|
|
var maxY: int = MOBJ["subtitleDefault"].y + MOBJ["subtitleDefault"].height > MOBJ["subtitleBack"].y + MOBJ["subtitleBack"].height ? MOBJ["subtitleDefault"].y + MOBJ["subtitleDefault"].height : MOBJ["subtitleBack"].y + MOBJ["subtitleBack"].height;
|
|
if (mx < minX || mx > maxX || my < minY || my > maxY) {
|
|
MOBJ["subtitleBack"].visible = false;
|
|
subtitleTimer.stop();
|
|
}
|
|
}
|
|
private function isFast(value: Number = 0): Boolean {
|
|
switch (CONFIG["config"]["timeScheduleAdjust"]) {
|
|
case 0:
|
|
return false;
|
|
break;
|
|
case 2:
|
|
if (value < timeNow) {
|
|
return false;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (value > timeNow) {
|
|
return false;
|
|
}
|
|
break;
|
|
case 4:
|
|
//trace(timeSeek);
|
|
if (timeSeek > -1) {
|
|
if (value < timeSeek) {
|
|
return false;
|
|
}
|
|
} else {
|
|
if (value < timeNow) {
|
|
return false;
|
|
}
|
|
}
|
|
break;
|
|
case 5:
|
|
if (value > timeMax) {
|
|
return false;
|
|
}
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
private function mouseOverHandler(event: MouseEvent): void {
|
|
switch (event.currentTarget) {
|
|
case MOBJ["definitionDefault"]:
|
|
if (MOBJ.hasOwnProperty("definitionBack") && MOBJ["definitionBack"] != null) {
|
|
MOBJ["definitionBack"].visible = true;
|
|
definitionTimerStart();
|
|
}
|
|
break;
|
|
case MOBJ["subtitleDefault"]:
|
|
if (MOBJ.hasOwnProperty("subtitleBack") && MOBJ["subtitleBack"] != null) {
|
|
MOBJ["subtitleBack"].visible = true;
|
|
definitionTimerStart();
|
|
}
|
|
break;
|
|
}
|
|
|
|
}
|
|
private function mouseOutHandler(event: MouseEvent): void {
|
|
showPrompt();
|
|
showPreviewPrompt();
|
|
previewHide();
|
|
}
|
|
private function clickMoveClickHanler(): void { //单击视频事件
|
|
if (setTimeClick) {
|
|
setTimeClick.stop();
|
|
setTimeClick = null;
|
|
}
|
|
if (isClick) {
|
|
//说明是双击
|
|
isClick = false;
|
|
THIS["sendJS"]("videoDoubleClick",videoSpriteXY);
|
|
if (CONFIG["config"]["doubleClick"]) {
|
|
THIS["switchFull"]();
|
|
}
|
|
|
|
} else {
|
|
setTimeClick = new timeOut(CONFIG["config"]["doubleClickInterval"], setTimeClickHandler);
|
|
isClick = true;
|
|
}
|
|
}
|
|
private function setTimeClickHandler(): void {
|
|
setTimeClick.stop();
|
|
setTimeClick = null;
|
|
isClick = false;
|
|
THIS["sendJS"]("videoClick",videoSpriteXY);
|
|
if (CONFIG["config"]["click"]) {
|
|
//THIS["playOrPause"]();
|
|
THIS["playOrPause"]();
|
|
//MovieClip(parent.parent).playOrPause();
|
|
}
|
|
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------播放器背景结束
|
|
private function coorDinate(obj: Object, refer: Sprite = null): Object {
|
|
//script.traceObject(obj);
|
|
//根据坐标及参考对象参数计算位置
|
|
var nObj: Object = {
|
|
align: "left",
|
|
vAlign: "top",
|
|
offsetX: "0",
|
|
offsetY: "0"
|
|
};
|
|
nObj = script.mergeObject(nObj, obj);
|
|
var x: int = 0,
|
|
y: int = 0,
|
|
w: int = refer != null ? refer.width : stageW,
|
|
h: int = refer != null ? refer.height : stageH;
|
|
switch (nObj["align"]) {
|
|
case "left":
|
|
x = 0;
|
|
break;
|
|
case "center":
|
|
x = w * 0.5;
|
|
break;
|
|
default:
|
|
x = w;
|
|
break;
|
|
}
|
|
switch (nObj["vAlign"]) {
|
|
case "top":
|
|
y = 0;
|
|
break;
|
|
case "middle":
|
|
y = h * 0.5;
|
|
break;
|
|
default:
|
|
y = h;
|
|
break;
|
|
}
|
|
//trace(x,y);
|
|
x += nObj["offsetX"].toString().indexOf("%") > -1 ? w * Number(nObj["offsetX"].toString().replace("%", "")) * 0.01 : Number(nObj["offsetX"]);
|
|
y += nObj["offsetY"].toString().indexOf("%") > -1 ? h * Number(nObj["offsetY"].toString().replace("%", "")) * 0.01 : Number(nObj["offsetY"]);
|
|
//trace(x,y);
|
|
return {
|
|
x: x,
|
|
y: y
|
|
};
|
|
}
|
|
//根据宽高返回实际的宽高
|
|
private function calculatedSize(w: String, h: String, refer: Sprite = null): Object {
|
|
var nw: int = Number(w),
|
|
nh: int = Number(h),
|
|
ow: int = refer != null ? refer.width : stageW,
|
|
oh: int = refer != null ? refer.height : stageH;
|
|
if (w.indexOf("%") > -1) {
|
|
nw = ow * Number(w.toString().replace("%", "")) * 0.01;
|
|
}
|
|
if (h.indexOf("%") > -1) {
|
|
nh = oh * Number(h.toString().replace("%", "")) * 0.01;
|
|
}
|
|
return {
|
|
width: nw,
|
|
height: nh
|
|
};
|
|
}
|
|
//返回控制栏的位置,主要用于在判断鼠标是否在控制栏里
|
|
private function getMMinXY(): Object {
|
|
var w: int = M.width,
|
|
h: int = M.height,
|
|
x: int = M.x,
|
|
y: int = M.y;
|
|
var minX: int = 0,
|
|
minY: int = 0;
|
|
for (var i: int = 0; i <= (M.numChildren - 1); i++) {
|
|
//trace(M.getChildAt(j).y);
|
|
//trace(M.getChildAt(j).y,(M.getChildAt(j).height+M.getChildAt(j).y),M.height);
|
|
if (M.getChildAt(i).x < minX) {
|
|
minX = M.getChildAt(i).x;
|
|
}
|
|
if (M.getChildAt(i).y < minY) {
|
|
minY = M.getChildAt(i).y;
|
|
}
|
|
}
|
|
return {
|
|
x: minX,
|
|
y: minY
|
|
};
|
|
}
|
|
//============================================================交互函数统一放置
|
|
//当修改了C.CONFIG后
|
|
public function changeConfig() {
|
|
CONFIG = C.CONFIG;
|
|
STYLE = CONFIG["style"];
|
|
LANGUAGE = CONFIG["language"];
|
|
FLASHVARS = CONFIG["flashvars"];
|
|
resize();
|
|
}
|
|
public function addListener(eve: String, fun: Function): void {
|
|
var isAdd: Boolean = true; //可以加
|
|
for (var i: int = 0; i < listenerArr.length; i++) {
|
|
var arr: Array = listenerArr[i];
|
|
if (arr[0] == eve && arr[1] == fun) {
|
|
isAdd = false;
|
|
break;
|
|
}
|
|
}
|
|
if (isAdd) {
|
|
listenerArr.push([eve, fun]);
|
|
}
|
|
|
|
}
|
|
public function sendJS(name: String, value: *= null): void {
|
|
var k: String = "";
|
|
var obj: Object = {};
|
|
var swfObj: Object = {};
|
|
for (var i: int = 0; i < listenerArr.length; i++) {
|
|
var arr: Array = listenerArr[i];
|
|
if (arr[0] == name) {
|
|
try {
|
|
if (value) {
|
|
arr[1](value);
|
|
} else {
|
|
arr[1]();
|
|
}
|
|
} catch (event: Error) {
|
|
new log(event);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
public function removeListener(eve: String, fun: Function): void {
|
|
for (var i: int = 0; i < listenerArr.length; i++) {
|
|
var arr: Array = listenerArr[i];
|
|
if (arr[0] == eve && arr[1] == fun) {
|
|
listenerArr.splice(i, 1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
public function showBuffer(n: int = 0): void {
|
|
var show: Boolean = true;
|
|
if (n < 0 || n >= 100 || (loading && loading.visible) || (MOBJ.hasOwnProperty("centerPlay") && MOBJ["centerPlay"].visible)) {
|
|
show = false;
|
|
}
|
|
if (MOBJ.hasOwnProperty("buffer")) {
|
|
MOBJ["buffer"].visible = show;
|
|
}
|
|
if (MOBJ.hasOwnProperty("bufferText")) {
|
|
MOBJ["bufferText"].visible = show;
|
|
if (MOBJ["bufferText"].visible) {
|
|
MOBJ["bufferText"].text = script.replace(LANGUAGE["buffer"], ["[$percentage]"], [n]);
|
|
}
|
|
|
|
}
|
|
}
|
|
//-------------------------------------------------------------------------------------------loading
|
|
public function showLoading(show: Boolean = true): void {
|
|
if (loading) {
|
|
loading.visible = show;
|
|
}
|
|
}
|
|
//-------------------------------------------------------------------------------------------提示点
|
|
public function changePromptSpot(): void {
|
|
STYLE = C.CONFIG["style"];
|
|
FLASHVARS = C.CONFIG["flashvars"];
|
|
var i: int = 0;
|
|
var promptSpot: Object = STYLE["promptSpot"];
|
|
if (promptSpotArr) {
|
|
for (i = 0; i < promptSpotArr.length; i++) {
|
|
//THIS.removeChild(
|
|
MOBJ["timeSlider"]["backDefaultSprite"].removeChild(promptSpotArr[i]);
|
|
}
|
|
}
|
|
if (!FLASHVARS.hasOwnProperty("promptSpot")) {
|
|
return;
|
|
}
|
|
if (!FLASHVARS["promptSpot"]) {
|
|
return;
|
|
}
|
|
if (script.getType(FLASHVARS["promptSpot"]) != "array") {
|
|
return;
|
|
}
|
|
promptSpotArr = [];
|
|
promptSpotObjArr = FLASHVARS["promptSpot"];
|
|
for (i = 0; i < promptSpotObjArr.length; i++) {
|
|
var mObj: Object = {
|
|
backgroundColor: promptSpot["color"],
|
|
backgroundAlpha: promptSpot["alpha"], //背景透明度
|
|
radius: promptSpot["radius"],
|
|
width: promptSpot["width"],
|
|
height: promptSpot["height"]
|
|
};
|
|
var sprite: Sprite = element.newSprite(mObj);
|
|
sprite.name = "spirte_" + i;
|
|
sprite.buttonMode = true;
|
|
sprite.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
|
|
sprite.addEventListener(MouseEvent.CLICK, mouseClickHandler);
|
|
promptSpotArr.push(sprite);
|
|
MOBJ["timeSlider"]["backDefaultSprite"].addChildAt(sprite, MOBJ["timeSlider"]["backDefaultSprite"].getChildIndex(MOBJ["timeSlider"]["playDefaultSprite"]) + 1);
|
|
}
|
|
promptSpotResize();
|
|
}
|
|
|
|
//根据音量的大小来调整滑块的位置,提供给外部使用
|
|
public function volumeSliderChange(volume: Number = 0): void {
|
|
if (volume < 0) {
|
|
volume = 0;
|
|
}
|
|
if (volume > 1) {
|
|
volume = 1;
|
|
}
|
|
var bkW: int = MOBJ["volumeSlider"]["backSprite"].width;
|
|
var mkW: int = MOBJ["volumeSlider"]["maskSprite"].width;
|
|
var btW: int = MOBJ["volumeSlider"]["buttonLoader"].width;
|
|
var newMkW: int = bkW * volume;
|
|
var newBtW: int = 0;
|
|
volumeTemp = volume;
|
|
newBtW = newMkW - (btW * 0.5);
|
|
if (newBtW < 0) {
|
|
newBtW = 0;
|
|
}
|
|
if (newBtW > bkW - btW) {
|
|
newBtW = bkW - btW;
|
|
}
|
|
MOBJ["volumeSlider"]["maskSprite"].width = newMkW;
|
|
MOBJ["volumeSlider"]["buttonLoader"].x = newBtW;
|
|
muteOrEscMute(volume);
|
|
}
|
|
//控制时间进度块是否跟着时间走
|
|
public function changeTimePlaySlider(b: Boolean = true): void {
|
|
if (buttonDown && b) {
|
|
return;
|
|
}
|
|
timeFollow = b;
|
|
//trace("================================================是否跟着走timeFollow01",timeFollow);
|
|
}
|
|
//根据播放时间调整滑块的位置,提供给外部使用
|
|
public function changeTimeTotal(n: Number = 0): void {
|
|
timeTotal = n;
|
|
if(C.CONFIG["flashvars"]["forceduration"]>0){
|
|
timeTotal=C.CONFIG["flashvars"]["forceduration"];
|
|
}
|
|
if (timeTotal > 0) {
|
|
changePromptSpot();
|
|
}
|
|
}
|
|
public function timePlaySliderChange(time: Number = 0): void {
|
|
if (!timeFollow) {
|
|
return;
|
|
}
|
|
if (time <= -999) {
|
|
var nowObj: Object = getFormatLiveTime();
|
|
if (time < -999) {
|
|
MOBJ["button"]["backLive"].visible = true;
|
|
} else {
|
|
MOBJ["button"]["backLive"].visible = false;
|
|
}
|
|
//计算时间
|
|
time = (CONFIG["config"]["liveAndVod"]["vodTime"] - 1) * 3600 + nowObj["minutes"] * 60 + nowObj["seconds"] + time + 999;
|
|
}
|
|
//trace("跳转",timeSeek,timeNow,time);
|
|
if (timeSeek == -1 && (timeNow - time > 2 || timeNow - time < -2)) {
|
|
timeSeek = timeNow;
|
|
}
|
|
timeNow = time;
|
|
if (timeMax < time) {
|
|
timeMax = time;
|
|
}
|
|
//trace("timeFollow====",time,timeTotal);
|
|
var bw: Number = MOBJ["timeSlider"]["buttonDefaultLoader"].width; //按钮的宽
|
|
var bgw: Number = MOBJ["timeSlider"]["backgroundDefaultLoader"].width //参数背景的宽
|
|
var pw: Number = (time * (bgw - bw)) / timeTotal + bw * 0.5; //进度条的宽度
|
|
MOBJ["timeSlider"]["playDefaultSprite"].width = pw; //进度条的宽
|
|
var bx: Number = pw - bw * 0.5; //按钮的x
|
|
if (bx < 0) {
|
|
bx = 0;
|
|
}
|
|
if (bx > bgw - bw) {
|
|
bx = bgw - bw
|
|
}
|
|
//trace("进度按钮的",bx,pw);
|
|
if (MOBJ.hasOwnProperty("timeSlider")) {
|
|
|
|
MOBJ["timeSlider"]["buttonDefaultLoader"].x = bx;
|
|
}
|
|
if (MOBJ.hasOwnProperty("timeOutSlider")) {
|
|
//简单播放进度
|
|
MOBJ["timeOutSlider"]["playOutSprite"].width = (time * MOBJ["timeOutSlider"]["backgroundOutLoader"].width) / timeTotal;
|
|
}
|
|
|
|
}
|
|
public function timePlaySimpleChange(time: Number = 0): void {
|
|
if (MOBJ.hasOwnProperty("simpleSchedule")) {
|
|
//简单播放进度
|
|
if (time == -999) {
|
|
var nowObj: Object = getFormatLiveTime();
|
|
//计算时间
|
|
time = (CONFIG["config"]["liveAndVod"]["vodTime"] - 1) * 3600 + nowObj["minutes"] * 60 + nowObj["seconds"];
|
|
}
|
|
var n: int = (time * MOBJ["simpleSchedule"]["backgroundDefaultLoader"].width) / timeTotal;
|
|
MOBJ["simpleSchedule"]["playDefaultSprite"].width = n;
|
|
}
|
|
|
|
}
|
|
//根据加载量调整整滑块的位置,提供给外部使用
|
|
public function changeLoadTotal(n: int = 0): void {
|
|
loadTotal = n;
|
|
}
|
|
public function timeLoadSliderChange(load: int = 0): void {
|
|
loadNow = load;
|
|
if (MOBJ.hasOwnProperty("timeSlider")) {
|
|
var n: int = (load * MOBJ["timeSlider"]["backgroundDefaultLoader"].width) / loadTotal;
|
|
MOBJ["timeSlider"]["loadDefaultSprite"].width = n;
|
|
}
|
|
if (MOBJ.hasOwnProperty("timeOutSlider")) {
|
|
var n2: int = (load * MOBJ["timeOutSlider"]["backgroundOutLoader"].width) / loadTotal;
|
|
MOBJ["timeOutSlider"]["loadOutSprite"].width = n2;
|
|
}
|
|
}
|
|
public function timeLoadSimpleChange(load: int = 0): void {
|
|
loadNow = load;
|
|
if (MOBJ.hasOwnProperty("simpleSchedule")) {
|
|
var n2: int = (load * MOBJ["simpleSchedule"]["backgroundDefaultLoader"].width) / loadTotal;
|
|
MOBJ["simpleSchedule"]["loadDefaultSprite"].width = n2;
|
|
}
|
|
}
|
|
//判断是加载直播时间框还是加载点播文本框
|
|
public function loadTimeText(): void {
|
|
var i: int = 0;
|
|
if (MOBJ.hasOwnProperty("timeVodText") && MOBJ["timeVodText"] != null) {
|
|
for (i = 0; i < MOBJ["timeVodText"].length; i++) {
|
|
M.removeChild(MOBJ["timeVodText"][i]);
|
|
|
|
}
|
|
MOBJ["timeVodText"] = null;
|
|
}
|
|
if (MOBJ.hasOwnProperty("timeLiveText") && MOBJ["timeLiveText"] != null) {
|
|
for (i = 0; i < MOBJ["timeLiveText"].length; i++) {
|
|
M.removeChild(MOBJ["timeLiveText"][i]);
|
|
}
|
|
MOBJ["timeLiveText"] = null;
|
|
}
|
|
if (!FLASHVARS["live"] && !C.CONFIG["config"]["liveAndVod"]["open"]) {
|
|
//trace("vod");
|
|
loadVodTimeText();
|
|
} else {
|
|
//trace("live");
|
|
loadLiveTimeText(); //加载时间文本框
|
|
}
|
|
}
|
|
public function changeVodTime(t: Number = 0): void { //改变点播视频时间
|
|
var val: int = Math.round(t);
|
|
if (MOBJ.hasOwnProperty("timeVodText") && MOBJ["timeVodText"] != null) {
|
|
var timeText: Object = STYLE["controlBar"]["timeText"]["vod"];
|
|
var textFiledArr: Array = MOBJ["timeVodText"];
|
|
var vodArr: Array = [];
|
|
var textArr: Array = [];
|
|
var timeTextArr: Array = [];
|
|
if (script.getType(STYLE["controlBar"]["timeText"]["vod"]) != "array") {
|
|
vodArr.push(STYLE["controlBar"]["timeText"]["vod"]);
|
|
} else {
|
|
vodArr = STYLE["controlBar"]["timeText"]["vod"];
|
|
}
|
|
for (var i: int = 0; i < textFiledArr.length; i++) {
|
|
//trace(getFormatTime(vodArr[i]["text"],t));
|
|
MOBJ["timeVodText"][i].text = getFormatTime(vodArr[i]["text"], t);
|
|
}
|
|
} else {
|
|
FLASHVARS["live"] = false;
|
|
loadTimeText();
|
|
}
|
|
}
|
|
public function changeLiveTime(t: int = 0): void { //直播时间的调用
|
|
//trace(t,"===");
|
|
if (MOBJ.hasOwnProperty("timeLiveText") && MOBJ["timeLiveText"] != null) {
|
|
var timeText: Object = STYLE["controlBar"]["timeText"]["live"];
|
|
var textFiledArr: Array = MOBJ["timeLiveText"];
|
|
var vodArr: Array = [];
|
|
var textArr: Array = [];
|
|
var timeTextArr: Array = [];
|
|
if (script.getType(STYLE["controlBar"]["timeText"]["live"]) != "array") {
|
|
vodArr.push(STYLE["controlBar"]["timeText"]["live"]);
|
|
} else {
|
|
vodArr = STYLE["controlBar"]["timeText"]["live"];
|
|
}
|
|
for (var i: int = 0; i < textFiledArr.length; i++) {
|
|
//trace(getFormatTime(vodArr[i]["text"],t));
|
|
//trace(vodArr[i]["text"]);
|
|
MOBJ["timeLiveText"][i].text = getFormatTime(vodArr[i]["text"], t);
|
|
}
|
|
} else {
|
|
FLASHVARS["live"] = true;
|
|
loadTimeText();
|
|
}
|
|
}
|
|
//加载或移除错误提示文本框
|
|
public function errorShow(error: String = ""): void {
|
|
if (error) {
|
|
var textObj: Object = STYLE["error"];
|
|
textObj["text"] = error;
|
|
if (errorText) {
|
|
THIS.removeChild(errorText);
|
|
errorText = null;
|
|
}
|
|
//script.traceObject(textObj);
|
|
errorText = element.newText(textObj);
|
|
THIS.addChild(errorText);
|
|
errorShowResize();
|
|
showCenterPlay(false);
|
|
showLoading(true);
|
|
showBuffer(100);
|
|
} else {
|
|
showLoading(false);
|
|
if (errorText) {
|
|
THIS.removeChild(errorText);
|
|
errorText = null;
|
|
}
|
|
}
|
|
}
|
|
//改变参考宽高
|
|
public function changeFaceWh(obj: Object): void {
|
|
//trace("改变宽高");
|
|
pause.width = obj["w"];
|
|
pause.height = obj["h"];
|
|
pause.x = obj["x"];
|
|
pause.y = obj["y"];
|
|
advertisementResize();
|
|
THIS.addChild(MOBJ["advertisement"]["closeButton"]);
|
|
}
|
|
//显示广告相关元件
|
|
public function advertisementShow(objName: String, b: Boolean = true): void {
|
|
if (MOBJ.hasOwnProperty("advertisement")) {
|
|
var advertisement: Object = MOBJ["advertisement"];
|
|
var newCoor: Object = {};
|
|
if (advertisement.hasOwnProperty(objName)) {
|
|
MOBJ["advertisement"][objName].visible = b;
|
|
if (b) {
|
|
THIS.addChild(MOBJ["advertisement"][objName]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//显示倒计时
|
|
public function changeAdCountDown(t: int = 0): void {
|
|
|
|
if (MOBJ.hasOwnProperty("advertisement")) {
|
|
if (MOBJ["advertisement"].hasOwnProperty("countDown")) {
|
|
if (t < 0) {
|
|
t = 0;
|
|
}
|
|
var textTemp: String = script.replace(LANGUAGE["adCountdown"], ["[$second]","[$Second]"], [t,t<10?"0"+t:t]);
|
|
if (!MOBJ["advertisement"].hasOwnProperty("countDownText")) {
|
|
var obj: Object = STYLE["advertisement"]["countDownText"];
|
|
var newText: TextField = element.newText({
|
|
text: "0",
|
|
color: obj["color"],
|
|
size: obj["size"],
|
|
font: obj["font"],
|
|
alpha: obj["alpha"],
|
|
bold: obj["bold"],
|
|
textAlign: obj["textAlign"],
|
|
width: obj["width"]
|
|
});
|
|
MOBJ["advertisement"]["countDownText"] = newText;
|
|
}
|
|
MOBJ["advertisement"]["countDownText"].text = textTemp;
|
|
THIS.addChild(MOBJ["advertisement"]["countDownText"]);
|
|
advertisementResize();
|
|
//trace("倒计时时间:",textTemp,MOBJ["advertisement"]["countDownText"].visible,THIS.getChildIndex(MOBJ["advertisement"]["countDown"]));
|
|
//trace("countDownText",MOBJ["advertisement"]["countDownText"].x,MOBJ["advertisement"]["countDownText"].y,MOBJ["advertisement"]["countDownText"].width,MOBJ["advertisement"]["countDownText"].height);
|
|
}
|
|
}
|
|
}
|
|
//显示跳过广告按钮延时显示的文本
|
|
public function changeAdSkipDelay(t: int): void {
|
|
//trace("++");
|
|
if (MOBJ.hasOwnProperty("advertisement")) {
|
|
if (MOBJ["advertisement"].hasOwnProperty("skipDelay")) {
|
|
if (t < 0) {
|
|
t = 0;
|
|
}
|
|
var textTemp: String = script.replace(LANGUAGE["skipDelay"], ["[$second]","[$Second]"], [t,t<10?"0"+t:t]);
|
|
if (!MOBJ["advertisement"].hasOwnProperty("skipDelayText")) {
|
|
var obj: Object = STYLE["advertisement"]["skipDelayText"];
|
|
var newText: TextField = element.newText({
|
|
text: textTemp,
|
|
color: obj["color"],
|
|
size: obj["size"],
|
|
font: obj["font"],
|
|
alpha: obj["alpha"],
|
|
bold: obj["bold"],
|
|
textAlign: obj["textAlign"],
|
|
width: obj["width"]
|
|
});
|
|
MOBJ["advertisement"]["skipDelayText"] = newText;
|
|
}
|
|
MOBJ["advertisement"]["skipDelayText"].text = textTemp;
|
|
THIS.addChild(MOBJ["advertisement"]["skipDelayText"]);
|
|
advertisementResize();
|
|
//trace("倒计时时间:",textTemp);
|
|
//trace("countDownText",MOBJ["advertisement"]["countDownText"].x,MOBJ["advertisement"]["countDownText"].y,MOBJ["advertisement"]["countDownText"].width,MOBJ["advertisement"]["countDownText"].height);
|
|
}
|
|
}
|
|
}
|
|
public function showCenterPlay(b: Boolean = true): void { //显示中间点击播放按钮
|
|
if (MOBJ.hasOwnProperty("centerPlay")) {
|
|
MOBJ["centerPlay"].visible = b;
|
|
}
|
|
}
|
|
public function showButton(name: String, b: Boolean = true): void { //显示/隐藏控制栏按钮
|
|
if (MOBJ["button"].hasOwnProperty(name)) {
|
|
MOBJ["button"][name].visible = b;
|
|
}
|
|
}
|
|
public function checkFullScreen(): void { //检查是否全屏
|
|
if (STAGE.displayState == "normal") {
|
|
MOBJ["button"]["full"].visible = true;
|
|
MOBJ["button"]["escFull"].visible = false;
|
|
if (full) {
|
|
full = false;
|
|
THIS["sendJS"]("full", full);
|
|
new log("full:" + full);
|
|
}
|
|
} else {
|
|
MOBJ["button"]["full"].visible = false;
|
|
MOBJ["button"]["escFull"].visible = true;
|
|
if (!full) {
|
|
full = true;
|
|
THIS["sendJS"]("full", full);
|
|
new log("full:" + full);
|
|
}
|
|
}
|
|
|
|
}
|
|
public function getClickSpriteIndex(): int { //获取播放器上方用来单击双击层的深度
|
|
return THIS.getChildIndex(clickSprite);
|
|
}
|
|
public function custom(arr: Array = null): void {
|
|
if (!arr) {
|
|
return;
|
|
}
|
|
//trace(arr);
|
|
//trace("custom==============");
|
|
var customeName: String = "";
|
|
if (arr.length != 3 && arr.length != 4) {
|
|
return
|
|
}
|
|
var style: String = "";
|
|
var ks: String = "";
|
|
if (arr.length == 3) {
|
|
ks = arr[1]
|
|
switch (arr[0]) {
|
|
case "button":
|
|
style = "vcustomButton";
|
|
break;
|
|
case "swf":
|
|
style = "vcustomSwf";
|
|
break;
|
|
case "images":
|
|
style = "vcustomImages";
|
|
break;
|
|
case "text":
|
|
style = "vcustomText";
|
|
break;
|
|
}
|
|
customeName = arr[0] + "." + arr[1];
|
|
} else {
|
|
ks = arr[2];
|
|
switch (arr[1]) {
|
|
|
|
case "button":
|
|
style = "customButton";
|
|
break;
|
|
case "swf":
|
|
style = "customSwf";
|
|
break;
|
|
case "images":
|
|
style = "customImages";
|
|
break;
|
|
case "text":
|
|
style = "customText";
|
|
break;
|
|
}
|
|
customeName = arr[0] + "." + arr[1] + "." + arr[2];
|
|
}
|
|
//trace("stylename",style,ks);
|
|
if (style) {
|
|
if (!MOBJ.hasOwnProperty(style) || !MOBJ[style]) {
|
|
return;
|
|
}
|
|
if (!MOBJ[style].hasOwnProperty(ks) || !MOBJ[style][ks]) {
|
|
return;
|
|
}
|
|
MOBJ[style][ks].visible = arr[arr.length - 1];
|
|
new log(customeName + ":" + arr[arr.length - 1]);
|
|
THIS["sendJS"](customeName, arr[arr.length - 1]);
|
|
}
|
|
|
|
}
|
|
public function clear(): void {
|
|
var i: int = 0;
|
|
changeLoadTotal(0);
|
|
timeLoadSliderChange(0);
|
|
changeTimeTotal(0);
|
|
timePlaySliderChange(0);
|
|
changeVodTime(0);
|
|
showLoading();
|
|
if (previewTop) {
|
|
THIS.removeChild(previewTop);
|
|
previewTop = null;
|
|
}
|
|
if (preview) {
|
|
THIS.removeChild(preview);
|
|
preview = null;
|
|
}
|
|
previewLoad = false;
|
|
previewLoadIng = false;
|
|
if (promptSpotArr) {
|
|
for (i = 0; i < promptSpotArr.length; i++) {
|
|
//THIS.removeChild(
|
|
MOBJ["timeSlider"]["backDefaultSprite"].removeChild(promptSpotArr[i]);
|
|
}
|
|
}
|
|
promptSpotArr = [];
|
|
}
|
|
public function changeControlBarShow(show: Boolean = true): void {
|
|
if (show) {
|
|
force = false;
|
|
mShowHandler();
|
|
} else {
|
|
force = true;
|
|
mHideHandler();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
} |