mirror of
https://github.com/Melon-Bread/Pet.GB
synced 2025-02-22 07:53:03 -05:00
115 lines
1.9 KiB
Haxe
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;
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|