Flash 在浏览器中无法正常显示
我有一个 fla 播放器,我试图让它在 div 中正确显示,它在 IE 中看起来不错(仅在刷新页面后),但其他浏览器都无法正确显示它(只有 1/4电视节目).. Flash 文档大小为 336px x 220px,我已将电视和遥控器放在里面。
我使用 SWFObject 来调用 flash,方法如下:
<script type="text/javascript">
var so = new SWFObject("tv.swf?videoUrl=video1.flv&imageUrl=image/image1.jpg&tvName=", "DSI", "100%", "100%", "6", "");
so.addVariable("autostart","true");
so.addParam("allowFullScreen", "true");
so.write("flashcontent");
</script>
它位于一个 div 内,该 div 的尺寸也是 336px x 220px,带有红色边框(仅用于可见性)。
网址如下:http://live.gfwa.360southclients.com/commercial/test。有人
可以帮我解决这个问题,让它正常显示吗,我不太擅长使用 flash 等..:S
哦,这是动作脚本文件:
package
{
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;
public class tvplayer extends MovieClip
{
private var seekbarChangeInterval:uint;
private var vid:Video;
private var mute:Boolean;
private var imageUrl:String;
public var remote_mc:MovieClip;
private var realVideoWidth:Number;
private var volumeChangeInterval:uint;
private var videoLoaded:Boolean;
private var currentState:Boolean;
private var req:URLRequest;
private var screenHeight:Number;
private var screenWidth:Number;
private var seekbarHideTimer:Timer;
private var videoUrl:String;
private var realVideoHeight:Number;
private var totalVideoTime:Number;
public var All_mc:MovieClip;
private var xmlLoader:URLLoader;
private var muteHideTimer:Timer;
private var volumeHideTimer:Timer;
private var videoLoadedInterval:uint;
private var imageLoader:Loader;
private var videoLoadedTime:Number;
private var showVideo:Boolean;
private var nc:NetConnection;
private var ns:NetStream;
private var latestVolumeVal:Number;
public function tvplayer() : void
{
nc = new NetConnection();
currentState = false;
screenHeight = 336;
screenWidth = 580;
setValues();
readFlashVars();
addButtonsEvents();
arrangeObjects();
loadImage();
loadVideo();
return;
}// end function
private function videoFinished() : void
{
ns.close();
vid.clear();
All_mc.lcd_mc.removeChild(vid);
All_mc.lcd_mc.imageHolder_mc.alpha = 1;
remote_mc.playpause_mc.play_mc.visible = true;
remote_mc.playpause_mc.pause_mc.visible = false;
clearInterval(videoLoadedInterval);
videoLoaded = false;
currentState = false;
return;
}// end function
public function loadImage() : void
{
try
{
imageLoader = new Loader();
imageLoader.load(new URLRequest(imageUrl));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, createImage);
}
catch (e:Error)
{
}
return;
}// end function
private function setValues()
{
videoUrl = "video/video1.flv";
imageUrl = "image/image1.jpg";
All_mc.txt.text = "Your Logo";
remote_mc.playpause_mc.pause_mc.visible = false;
mute = false;
latestVolumeVal = 1;
videoLoadedTime = 0;
All_mc.muteDisplay_mc.visible = false;
All_mc.volumeDisplay_mc.visible = false;
All_mc.volumeDisplay_mc.volumeBar_mc.width = latestVolumeVal * 348;
All_mc.seekbarDisplay_mc.visible = false;
muteHideTimer = new Timer(2000, 1);
muteHideTimer.addEventListener(TimerEvent.TIMER, hideMuteDisplay);
volumeHideTimer = new Timer(2000, 1);
volumeHideTimer.addEventListener(TimerEvent.TIMER, hideVolumeDisplay);
seekbarHideTimer = new Timer(2000, 1);
seekbarHideTimer.addEventListener(TimerEvent.TIMER, hideSeekbarDisplay);
stage.addEventListener(FullScreenEvent.FULL_SCREEN, fsEvent);
stage.addEventListener(Event.RESIZE, resizeHandler);
remote_mc.ledOn_mc.alpha = 0;
return;
}// end function
private function hideVolumeDisplay(event:TimerEvent) : void
{
All_mc.volumeDisplay_mc.visible = false;
volumeHideTimer.stop();
return;
}// end function
private function seekDown_mouseDown(event:MouseEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
All_mc.volumeDisplay_mc.visible = false;
volumeHideTimer.stop();
ledon();
ns.pause();
seekDown();
seekbarChangeInterval = setInterval(seekDown, 200);
return;
}// end function
private function metaDataGather(param1:Object) : void
{
realVideoHeight = param1.height;
realVideoWidth = param1.width;
totalVideoTime = param1.duration;
setMovieScale();
return;
}// end function
private function seekDown_mouseUp(event:MouseEvent) : void
{
ns.resume();
if (seekbarChangeInterval)
{
clearInterval(seekbarChangeInterval);
}
seekbarHideTimer.start();
ledoff();
return;
}// end function
private function outButton(event:MouseEvent) : void
{
event.currentTarget.out_mc.alpha = 1;
event.currentTarget.over_mc.alpha = 0;
return;
}// end function
private function updateLoader() : void
{
videoLoadedTime = Math.floor(totalVideoTime * (ns.bytesLoaded / ns.bytesTotal));
return;
}// end function
private function stopdrag(event:MouseEvent) : void
{
remote_mc.stopDrag();
return;
}// end function
function netStatusHandler(event:NetStatusEvent)
{
switch(event.info.code)
{
case "NetStream.Play.StreamNotFound":
{
trace("Unable to locate video");
break;
}
case "NetStream.Play.Stop":
{
videoFinished();
break;
}
case "NetStream.Seek.InvalidTime":
{
break;
}
default:
{
break;
}
}
return;
}// end function
private function volumeUp_mouseDown(event:MouseEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
All_mc.seekbarDisplay_mc.visible = false;
seekbarHideTimer.stop();
ledon();
volumeUp();
volumeChangeInterval = setInterval(volumeUp, 200);
return;
}// end function
private function arrangeFullscreenObjects() : void
{
All_mc.lcd_mc.width = stage.stageWidth;
All_mc.lcd_mc.height = stage.stageHeight;
var _loc_1:int = 0;
All_mc.lcd_mc.y = 0;
All_mc.lcd_mc.x = _loc_1;
var _loc_1:int = 0;
All_mc.y = 0;
All_mc.x = _loc_1;
remote_mc.x = All_mc.lcd_mc.x + All_mc.lcd_mc.width - remote_mc.width - 30;
remote_mc.y = All_mc.lcd_mc.y + All_mc.lcd_mc.height - remote_mc.height - 30;
All_mc.volumeDisplay_mc.x = Math.floor(All_mc.lcd_mc.x + (All_mc.lcd_mc.width - All_mc.volumeDisplay_mc.width) / 2);
All_mc.volumeDisplay_mc.y = All_mc.lcd_mc.y + (All_mc.lcd_mc.height - All_mc.volumeDisplay_mc.height) - 20;
All_mc.seekbarDisplay_mc.y = All_mc.lcd_mc.y + (All_mc.lcd_mc.height - All_mc.seekbarDisplay_mc.height) - 20;
All_mc.seekbarDisplay_mc.x = All_mc.volumeDisplay_mc.x;
All_mc.muteDisplay_mc.x = All_mc.lcd_mc.x + (All_mc.lcd_mc.width - All_mc.muteDisplay_mc.width) - 20;
All_mc.muteDisplay_mc.y = All_mc.lcd_mc.y + 20;
All_mc.txt.visible = false;
return;
}// end function
private function startdrag(event:MouseEvent) : void
{
remote_mc.startDrag();
return;
}// end function
private function clickPlayPause(event:MouseEvent) : void
{
All_mc.lcd_mc.imageHolder_mc.alpha = 0;
if (!videoLoaded)
{
loadVideo();
}
if (currentState)
{
currentState = false;
event.currentTarget.pause_mc.visible = false;
event.currentTarget.play_mc.visible = true;
ns.pause();
}
else
{
currentState = true;
ns.resume();
event.currentTarget.play_mc.visible = false;
event.currentTarget.pause_mc.visible = true;
}
return;
}// end function
private function addButtonsEvents()
{
remote_mc.playpause_mc.buttonMode = true;
remote_mc.playpause_mc.addEventListener(MouseEvent.CLICK, clickPlayPause);
remote_mc.playpause_mc.addEventListener(MouseEvent.MOUSE_DOWN, function ()
{
ledon();
return;
}// end function
);
remote_mc.playpause_mc.addEventListener(MouseEvent.MOUSE_UP, function ()
{
ledoff();
return;
}// end function
);
remote_mc.playpause_mc.play_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.playpause_mc.play_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.playpause_mc.pause_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.playpause_mc.pause_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.fullscreen_mc.buttonMode = true;
remote_mc.fullscreen_mc.addEventListener(MouseEvent.CLICK, clickFullscreen);
remote_mc.fullscreen_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.fullscreen_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.fullscreen_mc.addEventListener(MouseEvent.MOUSE_DOWN, function ()
{
ledon();
return;
}// end function
);
remote_mc.fullscreen_mc.addEventListener(MouseEvent.MOUSE_UP, function ()
{
ledoff();
return;
}// end function
);
remote_mc.remoteBg_mc.buttonMode = true;
remote_mc.remoteBg_mc.addEventListener(MouseEvent.MOUSE_DOWN, startdrag);
remote_mc.remoteBg_mc.addEventListener(MouseEvent.MOUSE_UP, stopdrag);
remote_mc.mute_mc.buttonMode = true;
remote_mc.mute_mc.addEventListener(MouseEvent.CLICK, toggleMute);
remote_mc.mute_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.mute_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.mute_mc.addEventListener(MouseEvent.MOUSE_DOWN, function ()
{
ledon();
return;
}// end function
);
remote_mc.mute_mc.addEventListener(MouseEvent.MOUSE_UP, function ()
{
ledoff();
return;
}// end function
);
remote_mc.volumeUp_mc.buttonMode = true;
remote_mc.volumeUp_mc.addEventListener(MouseEvent.MOUSE_DOWN, volumeUp_mouseDown);
remote_mc.volumeUp_mc.addEventListener(MouseEvent.MOUSE_UP, volumeUp_mouseUp);
remote_mc.volumeUp_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.volumeUp_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.volumeDown_mc.buttonMode = true;
remote_mc.volumeDown_mc.addEventListener(MouseEvent.MOUSE_DOWN, volumeDown_mouseDown);
remote_mc.volumeDown_mc.addEventListener(MouseEvent.MOUSE_UP, volumeDown_mouseUp);
remote_mc.volumeDown_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.volumeDown_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.forward_mc.buttonMode = true;
remote_mc.forward_mc.addEventListener(MouseEvent.MOUSE_DOWN, seekUp_mouseDown);
remote_mc.forward_mc.addEventListener(MouseEvent.MOUSE_UP, seekUp_mouseUp);
remote_mc.forward_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.forward_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.rewind_mc.buttonMode = true;
remote_mc.rewind_mc.addEventListener(MouseEvent.MOUSE_DOWN, seekDown_mouseDown);
remote_mc.rewind_mc.addEventListener(MouseEvent.MOUSE_UP, seekDown_mouseUp);
remote_mc.rewind_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.rewind_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
return;
}// end function
private function seekUp_mouseDown(event:MouseEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
All_mc.volumeDisplay_mc.visible = false;
volumeHideTimer.stop();
ledon();
seekUp();
seekbarChangeInterval = setInterval(seekUp, 100);
return;
}// end function
private function volumeDown() : void
{
volumeHideTimer.stop();
if (ns.soundTransform.volume > 0)
{
if (ns.soundTransform.volume - 0.1 <= 0)
{
ns.soundTransform = new SoundTransform(0);
latestVolumeVal = 0;
}
else
{
ns.soundTransform = new SoundTransform(ns.soundTransform.volume - 0.1);
latestVolumeVal = ns.soundTransform.volume;
}
}
All_mc.volumeDisplay_mc.volumeBar_mc.width = latestVolumeVal * 348;
All_mc.volumeDisplay_mc.visible = true;
return;
}// end function
private function seekUp_mouseUp(event:MouseEvent) : void
{
if (seekbarChangeInterval)
{
clearInterval(seekbarChangeInterval);
}
seekbarHideTimer.start();
ledoff();
return;
}// end function
private function overButton(event:MouseEvent) : void
{
event.currentTarget.over_mc.alpha = 1;
event.currentTarget.out_mc.alpha = 0;
return;
}// end function
private function ledon() : void
{
remote_mc.ledOn_mc.alpha = 1;
remote_mc.ledOff_mc.alpha = 0;
return;
}// end function
private function seekUp() : void
{
if (ns.time < totalVideoTime)
{
if (ns.time + 2 >= videoLoadedTime)
{
ns.seek(videoLoadedTime);
}
else
{
ns.seek(ns.time + 2);
}
}
All_mc.seekbarDisplay_mc.seekbar_mc.width = ns.time / totalVideoTime * 348;
All_mc.seekbarDisplay_mc.visible = true;
return;
}// end function
private function loadVideo() : void
{
videoLoaded = true;
nc.connect(null);
ns = new NetStream(nc);
vid = new Video();
ns.client = new Object();
ns.bufferTime = 3;
ns.play(videoUrl);
ns.client.onMetaData = metaDataGather;
ns.pause();
vid.attachNetStream(ns);
vid.smoothing = true;
All_mc.lcd_mc.addChild(vid);
ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
ns.soundTransform = new SoundTransform(latestVolumeVal);
videoLoadedInterval = setInterval(updateLoader, 100);
return;
}// end function
private function volumeUp_mouseUp(event:MouseEvent) : void
{
if (volumeChangeInterval)
{
clearInterval(volumeChangeInterval);
}
volumeHideTimer.start();
ledoff();
return;
}// end function
private function seekDown() : void
{
if (ns.time > 0)
{
if (ns.time - 2 <= 0)
{
ns.seek(0);
}
else
{
ns.seek(ns.time - 2);
}
}
All_mc.seekbarDisplay_mc.seekbar_mc.width = ns.time / totalVideoTime * 348;
All_mc.seekbarDisplay_mc.visible = true;
return;
}// end function
private function volumeDown_mouseDown(event:MouseEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
All_mc.seekbarDisplay_mc.visible = false;
seekbarHideTimer.stop();
ledon();
volumeDown();
volumeChangeInterval = setInterval(volumeDown, 200);
return;
}// end function
private function readFlashVars()
{
var paramObj:Object;
try
{
paramObj = stage.loaderInfo.parameters;
if (paramObj.videoUrl != null)
{
videoUrl = paramObj.videoUrl;
}
if (paramObj.imageUrl != null)
{
imageUrl = paramObj.imageUrl;
}
if (paramObj.tvName != null)
{
All_mc.txt.text = paramObj.tvName;
}
if (paramObj.screenHeight != null)
{
screenHeight = paramObj.screenHeight;
}
if (paramObj.screenWidth != null)
{
screenWidth = paramObj.screenWidth;
}
}
catch (error:Error)
{
}
return;
}// end function
private function volumeUp() : void
{
if (mute)
{
mute = false;
}
volumeHideTimer.stop();
if (ns.soundTransform.volume < 1)
{
if (ns.soundTransform.volume + 0.1 >= 1)
{
ns.soundTransform = new SoundTransform(1);
latestVolumeVal = 1;
}
else
{
ns.soundTransform = new SoundTransform(ns.soundTransform.volume + 0.1);
latestVolumeVal = ns.soundTransform.volume;
}
}
All_mc.volumeDisplay_mc.volumeBar_mc.width = latestVolumeVal * 348;
All_mc.volumeDisplay_mc.visible = true;
return;
}// end function
private function clickFullscreen(event:MouseEvent) : void
{
if (stage.displayState == StageDisplayState.NORMAL)
{
stage.displayState = StageDisplayState.FULL_SCREEN;
}
else
{
stage.displayState = StageDisplayState.NORMAL;
}
return;
}// end function
private function ledoff() : void
{
remote_mc.ledOn_mc.alpha = 0;
remote_mc.ledOff_mc.alpha = 1;
return;
}// end function
private function hideSeekbarDisplay(event:TimerEvent) : void
{
All_mc.seekbarDisplay_mc.visible = false;
seekbarHideTimer.stop();
return;
}// end function
private function toggleMute(event:MouseEvent) : void
{
All_mc.volumeDisplay_mc.visible = false;
volumeHideTimer.stop();
if (mute)
{
mute = false;
muteHideTimer.stop();
All_mc.muteDisplay_mc.muteOn_mc.alpha = 0;
All_mc.muteDisplay_mc.visible = true;
ns.soundTransform = new SoundTransform(latestVolumeVal);
muteHideTimer.start();
}
else
{
muteHideTimer.stop();
latestVolumeVal = ns.soundTransform.volume;
All_mc.muteDisplay_mc.muteOn_mc.alpha = 1;
All_mc.muteDisplay_mc.visible = true;
mute = true;
ns.soundTransform = new SoundTransform(0);
}
return;
}// end function
private function volumeDown_mouseUp(event:MouseEvent) : void
{
if (volumeChangeInterval)
{
clearInterval(volumeChangeInterval);
}
volumeHideTimer.start();
ledoff();
return;
}// end function
private function arrangeObjects()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
All_mc.x = All_mc.stage.stageWidth / 2 - (screenWidth + 40) / 2;
All_mc.y = All_mc.stage.stageHeight / 2 - (screenHeight + 55) / 2;
var _loc_1:int = 20;
All_mc.lcd_mc.y = 20;
All_mc.lcd_mc.x = _loc_1;
All_mc.lcd_mc.scree_bg.width = screenWidth;
All_mc.lcd_mc.scree_bg.height = screenHeight;
var _loc_1:int = 0;
All_mc.tv_bg.y = 0;
All_mc.tv_bg.x = _loc_1;
All_mc.tv_bg.width = screenWidth + 40;
All_mc.tv_bg.height = screenHeight + 55;
All_mc.foot_mc.y = All_mc.tv_bg.height - 12;
All_mc.foot_mc.x = Math.floor((All_mc.tv_bg.width - All_mc.foot_mc.width) / 2);
All_mc.txt.visible = true;
All_mc.txt.y = All_mc.lcd_mc.y + screenHeight + 5;
All_mc.txt.x = All_mc.tv_bg.x + Math.floor((All_mc.tv_bg.width - All_mc.txt.textWidth) / 2);
remote_mc.x = All_mc.x + (screenWidth + 40) - remote_mc.width;
remote_mc.y = All_mc.y + (screenHeight + 55) - remote_mc.height;
All_mc.volumeDisplay_mc.x = Math.floor(All_mc.lcd_mc.x + (screenWidth - All_mc.volumeDisplay_mc.width) / 2);
All_mc.volumeDisplay_mc.y = All_mc.lcd_mc.y + (screenHeight - All_mc.volumeDisplay_mc.height) - 20;
All_mc.seekbarDisplay_mc.y = All_mc.lcd_mc.y + (screenHeight - All_mc.seekbarDisplay_mc.height) - 20;
All_mc.seekbarDisplay_mc.x = All_mc.volumeDisplay_mc.x;
All_mc.muteDisplay_mc.x = All_mc.lcd_mc.x + (screenWidth - All_mc.muteDisplay_mc.width) - 20;
All_mc.muteDisplay_mc.y = All_mc.lcd_mc.y + 20;
return;
}// end function
private function fsEvent(event:FullScreenEvent)
{
if (stage.displayState == StageDisplayState.NORMAL)
{
arrangeObjects();
All_mc.lcd_mc.width = screenWidth;
All_mc.lcd_mc.height = screenHeight;
}
else
{
arrangeFullscreenObjects();
}
return;
}// end function
private function hideMuteDisplay(event:TimerEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
return;
}// end function
private function createImage(event:Event) : void
{
var _loc_2:Bitmap = null;
_loc_2 = Bitmap(imageLoader.contentLoaderInfo.content);
_loc_2.smoothing = true;
_loc_2.width = screenWidth;
_loc_2.height = screenHeight;
All_mc.lcd_mc.imageHolder_mc.addChild(_loc_2);
return;
}// end function
private function setMovieScale() : void
{
if (screenWidth / screenHeight >= realVideoWidth / realVideoHeight)
{
vid.height = screenHeight;
vid.width = realVideoWidth / realVideoHeight * screenHeight;
vid.x = (screenWidth - vid.width) / 2;
vid.y = 0;
}
else
{
vid.width = screenWidth;
vid.height = realVideoHeight / realVideoWidth * screenWidth;
vid.y = (screenHeight - vid.height) / 2;
vid.x = 0;
}
return;
}// end function
function resizeHandler(event:Event) : void
{
All_mc.x = All_mc.stage.stageWidth / 2 - All_mc.width / 2;
All_mc.y = All_mc.stage.stageHeight / 2 - All_mc.height / 2;
return;
}// end function
}
}
I've got a fla player and I'm trying to get it to display inside a div properly, it looks ok in IE (only after you refresh the page), but none of the other browsers show it properly (only 1/4 of the tv shows).. The flash document size is 336px x 220px and I've placed the tv and remote inside.
I'm using SWFObject to call the flash using this:
<script type="text/javascript">
var so = new SWFObject("tv.swf?videoUrl=video1.flv&imageUrl=image/image1.jpg&tvName=", "DSI", "100%", "100%", "6", "");
so.addVariable("autostart","true");
so.addParam("allowFullScreen", "true");
so.write("flashcontent");
</script>
And it sits inside a div which is also 336px x 220px with a red border (for visibility only).
Here's the URL: http://live.gfwa.360southclients.com/commercial/test.html
Can someone help me out with this to get it to display ok, I'm not so good with flash etc.. :S
Oh and here's the action script file:
package
{
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;
public class tvplayer extends MovieClip
{
private var seekbarChangeInterval:uint;
private var vid:Video;
private var mute:Boolean;
private var imageUrl:String;
public var remote_mc:MovieClip;
private var realVideoWidth:Number;
private var volumeChangeInterval:uint;
private var videoLoaded:Boolean;
private var currentState:Boolean;
private var req:URLRequest;
private var screenHeight:Number;
private var screenWidth:Number;
private var seekbarHideTimer:Timer;
private var videoUrl:String;
private var realVideoHeight:Number;
private var totalVideoTime:Number;
public var All_mc:MovieClip;
private var xmlLoader:URLLoader;
private var muteHideTimer:Timer;
private var volumeHideTimer:Timer;
private var videoLoadedInterval:uint;
private var imageLoader:Loader;
private var videoLoadedTime:Number;
private var showVideo:Boolean;
private var nc:NetConnection;
private var ns:NetStream;
private var latestVolumeVal:Number;
public function tvplayer() : void
{
nc = new NetConnection();
currentState = false;
screenHeight = 336;
screenWidth = 580;
setValues();
readFlashVars();
addButtonsEvents();
arrangeObjects();
loadImage();
loadVideo();
return;
}// end function
private function videoFinished() : void
{
ns.close();
vid.clear();
All_mc.lcd_mc.removeChild(vid);
All_mc.lcd_mc.imageHolder_mc.alpha = 1;
remote_mc.playpause_mc.play_mc.visible = true;
remote_mc.playpause_mc.pause_mc.visible = false;
clearInterval(videoLoadedInterval);
videoLoaded = false;
currentState = false;
return;
}// end function
public function loadImage() : void
{
try
{
imageLoader = new Loader();
imageLoader.load(new URLRequest(imageUrl));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, createImage);
}
catch (e:Error)
{
}
return;
}// end function
private function setValues()
{
videoUrl = "video/video1.flv";
imageUrl = "image/image1.jpg";
All_mc.txt.text = "Your Logo";
remote_mc.playpause_mc.pause_mc.visible = false;
mute = false;
latestVolumeVal = 1;
videoLoadedTime = 0;
All_mc.muteDisplay_mc.visible = false;
All_mc.volumeDisplay_mc.visible = false;
All_mc.volumeDisplay_mc.volumeBar_mc.width = latestVolumeVal * 348;
All_mc.seekbarDisplay_mc.visible = false;
muteHideTimer = new Timer(2000, 1);
muteHideTimer.addEventListener(TimerEvent.TIMER, hideMuteDisplay);
volumeHideTimer = new Timer(2000, 1);
volumeHideTimer.addEventListener(TimerEvent.TIMER, hideVolumeDisplay);
seekbarHideTimer = new Timer(2000, 1);
seekbarHideTimer.addEventListener(TimerEvent.TIMER, hideSeekbarDisplay);
stage.addEventListener(FullScreenEvent.FULL_SCREEN, fsEvent);
stage.addEventListener(Event.RESIZE, resizeHandler);
remote_mc.ledOn_mc.alpha = 0;
return;
}// end function
private function hideVolumeDisplay(event:TimerEvent) : void
{
All_mc.volumeDisplay_mc.visible = false;
volumeHideTimer.stop();
return;
}// end function
private function seekDown_mouseDown(event:MouseEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
All_mc.volumeDisplay_mc.visible = false;
volumeHideTimer.stop();
ledon();
ns.pause();
seekDown();
seekbarChangeInterval = setInterval(seekDown, 200);
return;
}// end function
private function metaDataGather(param1:Object) : void
{
realVideoHeight = param1.height;
realVideoWidth = param1.width;
totalVideoTime = param1.duration;
setMovieScale();
return;
}// end function
private function seekDown_mouseUp(event:MouseEvent) : void
{
ns.resume();
if (seekbarChangeInterval)
{
clearInterval(seekbarChangeInterval);
}
seekbarHideTimer.start();
ledoff();
return;
}// end function
private function outButton(event:MouseEvent) : void
{
event.currentTarget.out_mc.alpha = 1;
event.currentTarget.over_mc.alpha = 0;
return;
}// end function
private function updateLoader() : void
{
videoLoadedTime = Math.floor(totalVideoTime * (ns.bytesLoaded / ns.bytesTotal));
return;
}// end function
private function stopdrag(event:MouseEvent) : void
{
remote_mc.stopDrag();
return;
}// end function
function netStatusHandler(event:NetStatusEvent)
{
switch(event.info.code)
{
case "NetStream.Play.StreamNotFound":
{
trace("Unable to locate video");
break;
}
case "NetStream.Play.Stop":
{
videoFinished();
break;
}
case "NetStream.Seek.InvalidTime":
{
break;
}
default:
{
break;
}
}
return;
}// end function
private function volumeUp_mouseDown(event:MouseEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
All_mc.seekbarDisplay_mc.visible = false;
seekbarHideTimer.stop();
ledon();
volumeUp();
volumeChangeInterval = setInterval(volumeUp, 200);
return;
}// end function
private function arrangeFullscreenObjects() : void
{
All_mc.lcd_mc.width = stage.stageWidth;
All_mc.lcd_mc.height = stage.stageHeight;
var _loc_1:int = 0;
All_mc.lcd_mc.y = 0;
All_mc.lcd_mc.x = _loc_1;
var _loc_1:int = 0;
All_mc.y = 0;
All_mc.x = _loc_1;
remote_mc.x = All_mc.lcd_mc.x + All_mc.lcd_mc.width - remote_mc.width - 30;
remote_mc.y = All_mc.lcd_mc.y + All_mc.lcd_mc.height - remote_mc.height - 30;
All_mc.volumeDisplay_mc.x = Math.floor(All_mc.lcd_mc.x + (All_mc.lcd_mc.width - All_mc.volumeDisplay_mc.width) / 2);
All_mc.volumeDisplay_mc.y = All_mc.lcd_mc.y + (All_mc.lcd_mc.height - All_mc.volumeDisplay_mc.height) - 20;
All_mc.seekbarDisplay_mc.y = All_mc.lcd_mc.y + (All_mc.lcd_mc.height - All_mc.seekbarDisplay_mc.height) - 20;
All_mc.seekbarDisplay_mc.x = All_mc.volumeDisplay_mc.x;
All_mc.muteDisplay_mc.x = All_mc.lcd_mc.x + (All_mc.lcd_mc.width - All_mc.muteDisplay_mc.width) - 20;
All_mc.muteDisplay_mc.y = All_mc.lcd_mc.y + 20;
All_mc.txt.visible = false;
return;
}// end function
private function startdrag(event:MouseEvent) : void
{
remote_mc.startDrag();
return;
}// end function
private function clickPlayPause(event:MouseEvent) : void
{
All_mc.lcd_mc.imageHolder_mc.alpha = 0;
if (!videoLoaded)
{
loadVideo();
}
if (currentState)
{
currentState = false;
event.currentTarget.pause_mc.visible = false;
event.currentTarget.play_mc.visible = true;
ns.pause();
}
else
{
currentState = true;
ns.resume();
event.currentTarget.play_mc.visible = false;
event.currentTarget.pause_mc.visible = true;
}
return;
}// end function
private function addButtonsEvents()
{
remote_mc.playpause_mc.buttonMode = true;
remote_mc.playpause_mc.addEventListener(MouseEvent.CLICK, clickPlayPause);
remote_mc.playpause_mc.addEventListener(MouseEvent.MOUSE_DOWN, function ()
{
ledon();
return;
}// end function
);
remote_mc.playpause_mc.addEventListener(MouseEvent.MOUSE_UP, function ()
{
ledoff();
return;
}// end function
);
remote_mc.playpause_mc.play_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.playpause_mc.play_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.playpause_mc.pause_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.playpause_mc.pause_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.fullscreen_mc.buttonMode = true;
remote_mc.fullscreen_mc.addEventListener(MouseEvent.CLICK, clickFullscreen);
remote_mc.fullscreen_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.fullscreen_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.fullscreen_mc.addEventListener(MouseEvent.MOUSE_DOWN, function ()
{
ledon();
return;
}// end function
);
remote_mc.fullscreen_mc.addEventListener(MouseEvent.MOUSE_UP, function ()
{
ledoff();
return;
}// end function
);
remote_mc.remoteBg_mc.buttonMode = true;
remote_mc.remoteBg_mc.addEventListener(MouseEvent.MOUSE_DOWN, startdrag);
remote_mc.remoteBg_mc.addEventListener(MouseEvent.MOUSE_UP, stopdrag);
remote_mc.mute_mc.buttonMode = true;
remote_mc.mute_mc.addEventListener(MouseEvent.CLICK, toggleMute);
remote_mc.mute_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.mute_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.mute_mc.addEventListener(MouseEvent.MOUSE_DOWN, function ()
{
ledon();
return;
}// end function
);
remote_mc.mute_mc.addEventListener(MouseEvent.MOUSE_UP, function ()
{
ledoff();
return;
}// end function
);
remote_mc.volumeUp_mc.buttonMode = true;
remote_mc.volumeUp_mc.addEventListener(MouseEvent.MOUSE_DOWN, volumeUp_mouseDown);
remote_mc.volumeUp_mc.addEventListener(MouseEvent.MOUSE_UP, volumeUp_mouseUp);
remote_mc.volumeUp_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.volumeUp_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.volumeDown_mc.buttonMode = true;
remote_mc.volumeDown_mc.addEventListener(MouseEvent.MOUSE_DOWN, volumeDown_mouseDown);
remote_mc.volumeDown_mc.addEventListener(MouseEvent.MOUSE_UP, volumeDown_mouseUp);
remote_mc.volumeDown_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.volumeDown_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.forward_mc.buttonMode = true;
remote_mc.forward_mc.addEventListener(MouseEvent.MOUSE_DOWN, seekUp_mouseDown);
remote_mc.forward_mc.addEventListener(MouseEvent.MOUSE_UP, seekUp_mouseUp);
remote_mc.forward_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.forward_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
remote_mc.rewind_mc.buttonMode = true;
remote_mc.rewind_mc.addEventListener(MouseEvent.MOUSE_DOWN, seekDown_mouseDown);
remote_mc.rewind_mc.addEventListener(MouseEvent.MOUSE_UP, seekDown_mouseUp);
remote_mc.rewind_mc.addEventListener(MouseEvent.MOUSE_OVER, overButton);
remote_mc.rewind_mc.addEventListener(MouseEvent.MOUSE_OUT, outButton);
return;
}// end function
private function seekUp_mouseDown(event:MouseEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
All_mc.volumeDisplay_mc.visible = false;
volumeHideTimer.stop();
ledon();
seekUp();
seekbarChangeInterval = setInterval(seekUp, 100);
return;
}// end function
private function volumeDown() : void
{
volumeHideTimer.stop();
if (ns.soundTransform.volume > 0)
{
if (ns.soundTransform.volume - 0.1 <= 0)
{
ns.soundTransform = new SoundTransform(0);
latestVolumeVal = 0;
}
else
{
ns.soundTransform = new SoundTransform(ns.soundTransform.volume - 0.1);
latestVolumeVal = ns.soundTransform.volume;
}
}
All_mc.volumeDisplay_mc.volumeBar_mc.width = latestVolumeVal * 348;
All_mc.volumeDisplay_mc.visible = true;
return;
}// end function
private function seekUp_mouseUp(event:MouseEvent) : void
{
if (seekbarChangeInterval)
{
clearInterval(seekbarChangeInterval);
}
seekbarHideTimer.start();
ledoff();
return;
}// end function
private function overButton(event:MouseEvent) : void
{
event.currentTarget.over_mc.alpha = 1;
event.currentTarget.out_mc.alpha = 0;
return;
}// end function
private function ledon() : void
{
remote_mc.ledOn_mc.alpha = 1;
remote_mc.ledOff_mc.alpha = 0;
return;
}// end function
private function seekUp() : void
{
if (ns.time < totalVideoTime)
{
if (ns.time + 2 >= videoLoadedTime)
{
ns.seek(videoLoadedTime);
}
else
{
ns.seek(ns.time + 2);
}
}
All_mc.seekbarDisplay_mc.seekbar_mc.width = ns.time / totalVideoTime * 348;
All_mc.seekbarDisplay_mc.visible = true;
return;
}// end function
private function loadVideo() : void
{
videoLoaded = true;
nc.connect(null);
ns = new NetStream(nc);
vid = new Video();
ns.client = new Object();
ns.bufferTime = 3;
ns.play(videoUrl);
ns.client.onMetaData = metaDataGather;
ns.pause();
vid.attachNetStream(ns);
vid.smoothing = true;
All_mc.lcd_mc.addChild(vid);
ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
ns.soundTransform = new SoundTransform(latestVolumeVal);
videoLoadedInterval = setInterval(updateLoader, 100);
return;
}// end function
private function volumeUp_mouseUp(event:MouseEvent) : void
{
if (volumeChangeInterval)
{
clearInterval(volumeChangeInterval);
}
volumeHideTimer.start();
ledoff();
return;
}// end function
private function seekDown() : void
{
if (ns.time > 0)
{
if (ns.time - 2 <= 0)
{
ns.seek(0);
}
else
{
ns.seek(ns.time - 2);
}
}
All_mc.seekbarDisplay_mc.seekbar_mc.width = ns.time / totalVideoTime * 348;
All_mc.seekbarDisplay_mc.visible = true;
return;
}// end function
private function volumeDown_mouseDown(event:MouseEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
All_mc.seekbarDisplay_mc.visible = false;
seekbarHideTimer.stop();
ledon();
volumeDown();
volumeChangeInterval = setInterval(volumeDown, 200);
return;
}// end function
private function readFlashVars()
{
var paramObj:Object;
try
{
paramObj = stage.loaderInfo.parameters;
if (paramObj.videoUrl != null)
{
videoUrl = paramObj.videoUrl;
}
if (paramObj.imageUrl != null)
{
imageUrl = paramObj.imageUrl;
}
if (paramObj.tvName != null)
{
All_mc.txt.text = paramObj.tvName;
}
if (paramObj.screenHeight != null)
{
screenHeight = paramObj.screenHeight;
}
if (paramObj.screenWidth != null)
{
screenWidth = paramObj.screenWidth;
}
}
catch (error:Error)
{
}
return;
}// end function
private function volumeUp() : void
{
if (mute)
{
mute = false;
}
volumeHideTimer.stop();
if (ns.soundTransform.volume < 1)
{
if (ns.soundTransform.volume + 0.1 >= 1)
{
ns.soundTransform = new SoundTransform(1);
latestVolumeVal = 1;
}
else
{
ns.soundTransform = new SoundTransform(ns.soundTransform.volume + 0.1);
latestVolumeVal = ns.soundTransform.volume;
}
}
All_mc.volumeDisplay_mc.volumeBar_mc.width = latestVolumeVal * 348;
All_mc.volumeDisplay_mc.visible = true;
return;
}// end function
private function clickFullscreen(event:MouseEvent) : void
{
if (stage.displayState == StageDisplayState.NORMAL)
{
stage.displayState = StageDisplayState.FULL_SCREEN;
}
else
{
stage.displayState = StageDisplayState.NORMAL;
}
return;
}// end function
private function ledoff() : void
{
remote_mc.ledOn_mc.alpha = 0;
remote_mc.ledOff_mc.alpha = 1;
return;
}// end function
private function hideSeekbarDisplay(event:TimerEvent) : void
{
All_mc.seekbarDisplay_mc.visible = false;
seekbarHideTimer.stop();
return;
}// end function
private function toggleMute(event:MouseEvent) : void
{
All_mc.volumeDisplay_mc.visible = false;
volumeHideTimer.stop();
if (mute)
{
mute = false;
muteHideTimer.stop();
All_mc.muteDisplay_mc.muteOn_mc.alpha = 0;
All_mc.muteDisplay_mc.visible = true;
ns.soundTransform = new SoundTransform(latestVolumeVal);
muteHideTimer.start();
}
else
{
muteHideTimer.stop();
latestVolumeVal = ns.soundTransform.volume;
All_mc.muteDisplay_mc.muteOn_mc.alpha = 1;
All_mc.muteDisplay_mc.visible = true;
mute = true;
ns.soundTransform = new SoundTransform(0);
}
return;
}// end function
private function volumeDown_mouseUp(event:MouseEvent) : void
{
if (volumeChangeInterval)
{
clearInterval(volumeChangeInterval);
}
volumeHideTimer.start();
ledoff();
return;
}// end function
private function arrangeObjects()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
All_mc.x = All_mc.stage.stageWidth / 2 - (screenWidth + 40) / 2;
All_mc.y = All_mc.stage.stageHeight / 2 - (screenHeight + 55) / 2;
var _loc_1:int = 20;
All_mc.lcd_mc.y = 20;
All_mc.lcd_mc.x = _loc_1;
All_mc.lcd_mc.scree_bg.width = screenWidth;
All_mc.lcd_mc.scree_bg.height = screenHeight;
var _loc_1:int = 0;
All_mc.tv_bg.y = 0;
All_mc.tv_bg.x = _loc_1;
All_mc.tv_bg.width = screenWidth + 40;
All_mc.tv_bg.height = screenHeight + 55;
All_mc.foot_mc.y = All_mc.tv_bg.height - 12;
All_mc.foot_mc.x = Math.floor((All_mc.tv_bg.width - All_mc.foot_mc.width) / 2);
All_mc.txt.visible = true;
All_mc.txt.y = All_mc.lcd_mc.y + screenHeight + 5;
All_mc.txt.x = All_mc.tv_bg.x + Math.floor((All_mc.tv_bg.width - All_mc.txt.textWidth) / 2);
remote_mc.x = All_mc.x + (screenWidth + 40) - remote_mc.width;
remote_mc.y = All_mc.y + (screenHeight + 55) - remote_mc.height;
All_mc.volumeDisplay_mc.x = Math.floor(All_mc.lcd_mc.x + (screenWidth - All_mc.volumeDisplay_mc.width) / 2);
All_mc.volumeDisplay_mc.y = All_mc.lcd_mc.y + (screenHeight - All_mc.volumeDisplay_mc.height) - 20;
All_mc.seekbarDisplay_mc.y = All_mc.lcd_mc.y + (screenHeight - All_mc.seekbarDisplay_mc.height) - 20;
All_mc.seekbarDisplay_mc.x = All_mc.volumeDisplay_mc.x;
All_mc.muteDisplay_mc.x = All_mc.lcd_mc.x + (screenWidth - All_mc.muteDisplay_mc.width) - 20;
All_mc.muteDisplay_mc.y = All_mc.lcd_mc.y + 20;
return;
}// end function
private function fsEvent(event:FullScreenEvent)
{
if (stage.displayState == StageDisplayState.NORMAL)
{
arrangeObjects();
All_mc.lcd_mc.width = screenWidth;
All_mc.lcd_mc.height = screenHeight;
}
else
{
arrangeFullscreenObjects();
}
return;
}// end function
private function hideMuteDisplay(event:TimerEvent) : void
{
All_mc.muteDisplay_mc.visible = false;
muteHideTimer.stop();
return;
}// end function
private function createImage(event:Event) : void
{
var _loc_2:Bitmap = null;
_loc_2 = Bitmap(imageLoader.contentLoaderInfo.content);
_loc_2.smoothing = true;
_loc_2.width = screenWidth;
_loc_2.height = screenHeight;
All_mc.lcd_mc.imageHolder_mc.addChild(_loc_2);
return;
}// end function
private function setMovieScale() : void
{
if (screenWidth / screenHeight >= realVideoWidth / realVideoHeight)
{
vid.height = screenHeight;
vid.width = realVideoWidth / realVideoHeight * screenHeight;
vid.x = (screenWidth - vid.width) / 2;
vid.y = 0;
}
else
{
vid.width = screenWidth;
vid.height = realVideoHeight / realVideoWidth * screenWidth;
vid.y = (screenHeight - vid.height) / 2;
vid.x = 0;
}
return;
}// end function
function resizeHandler(event:Event) : void
{
All_mc.x = All_mc.stage.stageWidth / 2 - All_mc.width / 2;
All_mc.y = All_mc.stage.stageHeight / 2 - All_mc.height / 2;
return;
}// end function
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我设法让它正确显示,但现在我想知道是否有人可以帮助我让视频自动播放,我已经尝试过,
但它们不起作用,我不知道如何编辑 ActionScript 使其播放自动地..
I managed to get it to display properly, but now I was wondering if anyone could help me to get the video to play automatically, I've tried
but they dont work, I'm not sure how to edit the ActionScript to make it play automatically..