From 856d5c89d438b7395928b1241bbd1731d1ca33c9 Mon Sep 17 00:00:00 2001 From: Igor <{ID}+{username}@users.noreply.github.com> Date: Tue, 30 Aug 2022 16:33:54 -0400 Subject: [PATCH] Added background image Updated sample to show to set background image in preloader for different targets. --- .../CustomPreloader/Assets/preload.jpg | Bin 0 -> 10744 bytes .../CustomPreloader/Source/Preloader.hx | 47 ++++++++++++++++-- 2 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 features/display/CustomPreloader/Assets/preload.jpg diff --git a/features/display/CustomPreloader/Assets/preload.jpg b/features/display/CustomPreloader/Assets/preload.jpg new file mode 100644 index 0000000000000000000000000000000000000000..14ce3df378068dd3dc0596d8f6d68ee8d3f9a8ae GIT binary patch literal 10744 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 BnoIxy literal 0 HcmV?d00001 diff --git a/features/display/CustomPreloader/Source/Preloader.hx b/features/display/CustomPreloader/Source/Preloader.hx index 829552f..9f43646 100644 --- a/features/display/CustomPreloader/Source/Preloader.hx +++ b/features/display/CustomPreloader/Source/Preloader.hx @@ -1,15 +1,48 @@ package; import haxe.Timer; +import openfl.Lib; +import openfl.display.Bitmap; +import openfl.display.BitmapData; +import openfl.display.PixelSnapping; import openfl.display.Sprite; import openfl.events.Event; import openfl.events.ProgressEvent; +//optional +#if flash +@:bitmap("assets/preload.jpg") class Back extends BitmapData {} +#elseif html5 +@:bitmap("assets/preload.jpg") class Back extends BitmapData {} +#elseif android +@:bitmap("assets/preload.jpg") class Back extends BitmapData {} +#elseif ios +@:bitmap("assets/preload.jpg") class Back extends BitmapData {} +#else +@:bitmap("assets/preload.jpg") class Back extends BitmapData {} +#end + class Preloader extends Sprite { + private var _back:Bitmap = null; + private var _progress:Sprite = new Sprite(); + public function new() { super(); + + var w:Int = Lib.current.stage.stageWidth; + var h:Int = Lib.current.stage.stageHeight; + + var bmpd:BitmapData = new Back(w, h); + _back = new Bitmap(bmpd, PixelSnapping.AUTO, true); +#if !html5 //not working in HTML5 since OpenFL 7, because image is not loaded yet, fix it in this_onProgress + _back.width = w; + _back.height = h; +#end + addChild(_back); + + addChild(_progress); //on top of background addEventListener(Event.COMPLETE, this_onComplete); addEventListener(ProgressEvent.PROGRESS, this_onProgress); @@ -17,9 +50,9 @@ class Preloader extends Sprite private function update(percent:Float):Void { - graphics.clear(); - graphics.beginFill(0x1F9DB2); - graphics.drawRect(0, 0, stage.stageWidth * percent, stage.stageHeight); + _progress.graphics.clear(); + _progress.graphics.beginFill(0x1F9DB2, 0.3); + _progress.graphics.drawRect(0, 0, stage.stageWidth * percent, stage.stageHeight); } private function this_onComplete(event:Event):Void @@ -45,6 +78,14 @@ class Preloader extends Sprite else { update(event.bytesLoaded / event.bytesTotal); + +#if html5 //image has been loadede, set correct size of in HTML5 + if(_back.width != 0) + { + _back.width = stage.stageWidth; + _back.height = stage.stageHeight; + } +#end } } }