I tried the following code, and I could reproduce the issue:
var button:Button = new Button();
button.label = "Click Me";
button.x = 20;
button.y = 20;
button.addEventListener(Event.TRIGGERED, function():void
{
Starling.juggler.delayCall(function():void
{
var content:Label = new Label();
content.text = "Hello World";
Callout.show(content, button);
}, 1);
});
this.addChild(button);
I changed the call to Callout.show() like this, and it fixed the issue:
var callout:Callout = Callout.show(content, button);
callout.validate();
Feathers components are validated using the Juggler. In some cases, other things triggered by the juggler will happen at a time when it is no longer possible to automatically validate a Feathers component during the current frame. So, it waits until the next frame to validate, which can cause some flickering, like you are seeing. The solution is to manually validate when this happens.