Engine.LoadingTextBox = class extends Engine.Dialog
{
constructor(parentClip)
{
super(parentClip);
this.background = new Engine.Drawable("BGStandard");
this.text = new Engine.DrawableText();
this.loadingCircle = new Engine.Drawable("LoadingCircle");
this.boxWidth = 270;
this.boxHeight = 90;
this.dialogWidth = this.boxWidth;
this.dialogHeight = this.boxHeight;
this.name = "LoadingBox";
this.background.setNineRect();
this.background.width = this.boxWidth;
this.background.height = this.boxHeight;
this.initialTransparent = false;
this.alwaysTransparent = false;
this.delayTimer = new Engine.SimpleTimer();
this.addChild(this.background);
this.addChild(this.text);
this.addChild(this.loadingCircle);
}
showAfterDelay()
{
if (this.parent == null) return;
this.blockerInfo = new Engine.DialogBlockerInfo();
if (this.alwaysTransparent)
{
this.blockerInfo.color = 0x000000;
this.blockerInfo.alpha = 0;
}
Engine.DialogManagerInstance.updateBlockers();
this.background.alpha = 1;
this.addChild(this.text);
this.addChild(this.loadingCircle);
}
show(message, delay, initialTransparent, alwaysTransparent)
{
if (delay === undefined) delay = 0;
if (initialTransparent === undefined) initialTransparent = false;
if (alwaysTransparent === undefined) alwaysTransparent = false;
Debug.Log("Showing - " + message);
this.initialTransparent = initialTransparent;
this.alwaysTransparent = alwaysTransparent;
if (delay != 0)
{
this.background.alpha = 0;
this.removeChild(this.text);
this.removeChild(this.loadingCircle);
this.blockerInfo = null;
if (this.delayTimer.active) this.delayTimer.stop();
this.delayTimer.start(delay, () => { this.showAfterDelay(); });
if (initialTransparent)
{
this.blockerInfo = new Engine.DialogBlockerInfo();
this.blockerInfo.color = 0x000000;
this.blockerInfo.alpha = 0;
}
}
else
{
this.background.alpha = 1;
this.addChild(this.text);
this.addChild(this.loadingCircle);
if (!this.active)
{
this.blockerInfo = new Engine.DialogBlockerInfo();
if (alwaysTransparent)
{
this.blockerInfo.color = 0x000000;
this.blockerInfo.alpha = 0;
}
}
}
this.active = true;
this.parentClip.addChild(this);
var loadingWidth = this.loadingCircle.width;
this.loadingCircle.y = this.boxHeight / 2;
this.loadingCircle.x = loadingWidth;
this.loadingCircle.gotoAndPlay(0);
this.text.setText(message);
this.text.x = Math.floor(loadingWidth + ((this.boxWidth - loadingWidth) - this.text.width) / 2);
this.text.y = Math.floor((this.boxHeight - this.text.height) / 2);
this.dt.transitionIn();
}
hide(instant)
{
super.hide(this.delayTimer.active);
this.delayTimer.stop();
}
}