merge into master
This commit is contained in:
195
source/VideoHandler.hx
Normal file
195
source/VideoHandler.hx
Normal file
@ -0,0 +1,195 @@
|
||||
//This was made by GWebDev lol btw this uses actuate
|
||||
package;
|
||||
|
||||
import motion.Actuate;
|
||||
import openfl.display.Sprite;
|
||||
import openfl.events.AsyncErrorEvent;
|
||||
import openfl.events.MouseEvent;
|
||||
import openfl.events.NetStatusEvent;
|
||||
import openfl.media.Video;
|
||||
import openfl.net.NetConnection;
|
||||
import openfl.net.NetStream;
|
||||
import flixel.FlxG;
|
||||
|
||||
using StringTools;
|
||||
|
||||
class VideoHandler
|
||||
{
|
||||
public var netStream:NetStream;
|
||||
public var video:Video;
|
||||
public var isReady:Bool = false;
|
||||
public var addOverlay:Bool = false;
|
||||
public var vidPath:String = "";
|
||||
public var ignoreShit:Bool = false;
|
||||
|
||||
public function new()
|
||||
{
|
||||
isReady = false;
|
||||
}
|
||||
|
||||
public function source(?vPath:String):Void
|
||||
{
|
||||
if (vPath != null && vPath.length > 0)
|
||||
{
|
||||
vidPath = vPath;
|
||||
}
|
||||
}
|
||||
|
||||
public function init1():Void
|
||||
{
|
||||
isReady = false;
|
||||
video = new Video();
|
||||
video.visible = false;
|
||||
}
|
||||
|
||||
public function init2():Void
|
||||
{
|
||||
#if web
|
||||
var netConnection = new NetConnection ();
|
||||
netConnection.connect (null);
|
||||
|
||||
netStream = new NetStream (netConnection);
|
||||
netStream.client = { onMetaData: client_onMetaData };
|
||||
netStream.addEventListener (AsyncErrorEvent.ASYNC_ERROR, netStream_onAsyncError);
|
||||
|
||||
netConnection.addEventListener (NetStatusEvent.NET_STATUS, netConnection_onNetStatus);
|
||||
netConnection.addEventListener (NetStatusEvent.NET_STATUS, onPlay);
|
||||
netConnection.addEventListener (NetStatusEvent.NET_STATUS, onEnd);
|
||||
#end
|
||||
}
|
||||
|
||||
public function client_onMetaData (metaData:Dynamic) {
|
||||
|
||||
video.attachNetStream (netStream);
|
||||
|
||||
video.width = FlxG.width;
|
||||
video.height = FlxG.height;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function netStream_onAsyncError (event:AsyncErrorEvent):Void {
|
||||
|
||||
trace ("Error loading video");
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function netConnection_onNetStatus (event:NetStatusEvent):Void {
|
||||
trace (event.info.code);
|
||||
}
|
||||
|
||||
public function play():Void
|
||||
{
|
||||
#if web
|
||||
ignoreShit = true;
|
||||
netStream.close();
|
||||
init2();
|
||||
netStream.play(vidPath);
|
||||
ignoreShit = false;
|
||||
#end
|
||||
trace(vidPath);
|
||||
}
|
||||
|
||||
public function stop():Void
|
||||
{
|
||||
netStream.close();
|
||||
onStop();
|
||||
}
|
||||
|
||||
public function restart():Void
|
||||
{
|
||||
play();
|
||||
onRestart();
|
||||
}
|
||||
|
||||
public function update(elapsed:Float):Void
|
||||
{
|
||||
video.x = GlobalVideo.calc(0);
|
||||
video.y = GlobalVideo.calc(1);
|
||||
video.width = GlobalVideo.calc(2);
|
||||
video.height = GlobalVideo.calc(3);
|
||||
}
|
||||
|
||||
public var stopped:Bool = false;
|
||||
public var restarted:Bool = false;
|
||||
public var played:Bool = false;
|
||||
public var ended:Bool = false;
|
||||
public var paused:Bool = false;
|
||||
|
||||
public function pause():Void
|
||||
{
|
||||
netStream.pause();
|
||||
paused = true;
|
||||
}
|
||||
|
||||
public function resume():Void
|
||||
{
|
||||
netStream.resume();
|
||||
paused = false;
|
||||
}
|
||||
|
||||
public function togglePause():Void
|
||||
{
|
||||
if (paused)
|
||||
{
|
||||
resume();
|
||||
} else {
|
||||
pause();
|
||||
}
|
||||
}
|
||||
|
||||
public function clearPause():Void
|
||||
{
|
||||
paused = false;
|
||||
}
|
||||
|
||||
public function onStop():Void
|
||||
{
|
||||
if (!ignoreShit)
|
||||
{
|
||||
stopped = true;
|
||||
}
|
||||
}
|
||||
|
||||
public function onRestart():Void
|
||||
{
|
||||
restarted = true;
|
||||
}
|
||||
|
||||
public function onPlay(event:NetStatusEvent):Void
|
||||
{
|
||||
if (event.info.code == "NetStream.Play.Start")
|
||||
{
|
||||
played = true;
|
||||
}
|
||||
}
|
||||
|
||||
public function onEnd(event:NetStatusEvent):Void
|
||||
{
|
||||
if (event.info.code == "NetStream.Play.Complete")
|
||||
{
|
||||
ended = true;
|
||||
}
|
||||
}
|
||||
|
||||
public function alpha():Void
|
||||
{
|
||||
video.alpha = GlobalVideo.daAlpha1;
|
||||
}
|
||||
|
||||
public function unalpha():Void
|
||||
{
|
||||
video.alpha = GlobalVideo.daAlpha2;
|
||||
}
|
||||
|
||||
public function hide():Void
|
||||
{
|
||||
video.visible = false;
|
||||
}
|
||||
|
||||
public function show():Void
|
||||
{
|
||||
video.visible = true;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user