1
0
mirror of https://github.com/Melon-Bread/Pet.GB synced 2025-02-22 07:53:03 -05:00
Pet.GB/export/windows/neko/haxe/NMEPreloader.hx
2016-10-03 20:43:09 -04:00

115 lines
1.9 KiB
Haxe

import openfl.display.Sprite;
import openfl.events.Event;
class NMEPreloader extends Sprite
{
private var outline:Sprite;
private var progress:Sprite;
public function new()
{
super();
var backgroundColor = getBackgroundColor ();
var r = backgroundColor >> 16 & 0xFF;
var g = backgroundColor >> 8 & 0xFF;
var b = backgroundColor & 0xFF;
var perceivedLuminosity = (0.299 * r + 0.587 * g + 0.114 * b);
var color = 0x000000;
if (perceivedLuminosity < 70) {
color = 0xFFFFFF;
}
var x = 30;
var height = 9;
var y = getHeight () / 2 - height / 2;
var width = getWidth () - x * 2;
var padding = 3;
outline = new Sprite ();
outline.graphics.lineStyle (1, color, 0.15, true);
outline.graphics.drawRoundRect (0, 0, width, height, padding * 2, padding * 2);
outline.x = x;
outline.y = y;
addChild (outline);
progress = new Sprite ();
progress.graphics.beginFill (color, 0.35);
progress.graphics.drawRect (0, 0, width - padding * 2, height - padding * 2);
progress.x = x + padding;
progress.y = y + padding;
progress.scaleX = 0;
addChild (progress);
}
public function getBackgroundColor():Int
{
return 0;
}
public function getHeight():Float
{
var height = 144;
if (height > 0) {
return height;
} else {
return flash.Lib.current.stage.stageHeight;
}
}
public function getWidth():Float
{
var width = 160;
if (width > 0) {
return width;
} else {
return flash.Lib.current.stage.stageWidth;
}
}
public function onInit()
{
}
public function onLoaded()
{
dispatchEvent (new Event (Event.COMPLETE));
}
public function onUpdate(bytesLoaded:Int, bytesTotal:Int)
{
var percentLoaded = bytesLoaded / bytesTotal;
if (percentLoaded > 1)
{
percentLoaded = 1;
}
progress.scaleX = percentLoaded;
}
}