75 lines
2.2 KiB
Haxe
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);
|
|
|
|
}
|
|
}
|