Files
LPTCManager2026/src/components/RoundAvatar.hx
T
2025-12-05 08:52:49 +01:00

75 lines
2.2 KiB
Haxe

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);
}
}