package components; import openfl.display.LoaderInfo; import openfl.net.URLRequest; import openfl.display.Loader; import openfl.events.Event; import feathers.controls.AssetLoader; import feathers.layout.AnchorLayoutData; import feathers.layout.AnchorLayout; import feathers.text.TextFormat; import openfl.Assets; import openfl.text.Font; import feathers.controls.Label; import feathers.layout.HorizontalLayout; import openfl.display.Shape; import model.Constants; import feathers.skins.RectangleSkin; import feathers.controls.LayoutGroup; import t9.util.ColorTraces.*; class RoundAvatar extends LayoutGroup { private var avatarSize:Int; public function new(pAvatarSize:Int = 32) { super(); avatarSize = pAvatarSize; } override private function initialize():Void { super.initialize(); var hl:HorizontalLayout = new HorizontalLayout(); hl.horizontalAlign = LEFT; layout = hl; //backgroundSkin = new RectangleSkin(SolidColor(0xFF0000, 1)); /*var al:AssetLoader = new AssetLoader(); al.addEventListener(Event.COMPLETE, onLoadComplete); al.sourceScale = 0.6; al.source = "https://ui-avatars.com/api/?background=random&size=128"; addChild(al);*/ var bkg:Shape = new Shape(); bkg.graphics.beginFill(Std.int(Math.random() * 0xFFFFFF), 1); bkg.graphics.drawCircle(avatarSize / 2, avatarSize / 2, avatarSize / 2); bkg.graphics.endFill(); backgroundSkin = bkg; var spacer:Shape = new Shape(); spacer.graphics.beginFill(Std.int(0x933EA7), 1); spacer.graphics.drawRect(bkg.x + bkg.width, bkg.y, avatarSize / 2, bkg.height); spacer.graphics.endFill(); addChild(spacer); var l:Loader = new Loader(); // l.load(new URLRequest("https://ui-avatars.com/api/?background=random&size=64")); l.load(new URLRequest("https://api.dicebear.com/9.x/pixel-art/png?size=32")); l.contentLoaderInfo.addEventListener (Event.COMPLETE, onLoadComplete); } private function onLoadComplete(e:Event) { //var loader = cast(e.currentTarget, AssetLoader); //trace("asset loaded: " + loader.source); var l:Loader = cast(e.currentTarget, LoaderInfo).loader; l.content.width = l.content.height = avatarSize; if(!contains(l)) addChild(l); traceMagenta(l.width + " / " + l.height); } }