@ustk Thank you very much. i,ve created a similar solution a few hours ago. I don´t use Broadcaster just the proper scriptSlider callback ,a "InlineStyleSheet" for the valuePopup Label and a Timer:
Content.makeFrontInterface(400, 200
);
const var Label1 = Content.getComponent("Label1");
const var lblCss = Content.createLocalLookAndFeel();
Label1.set("text", "ValuePopup");
const var valuePopupTimer=Engine.createTimerObject();
valuePopupTimer.setTimerCallback(function(){
Label1.set("visible", false) ;
valuePopupTimer.stopTimer();
});
// Label Laf
lblCss.setInlineStyleSheet("
*
{
letter-spacing: 1px;
font-weight: bold;
font-size: 12;
}
/** Render the default appearance. */
label
{
background-color: var(--bgColour);
color: var(--textColour);
border-radius: 5px;
border-size: 1px
text-align: centred;
text-shadow: 2px 2px 5px rgba(0,0,0,0.6);
}
/** If you edit the text, it will use this selector. */
input
{
text-align: left;
padding-top: 0.5px;
padding-left: 50px;
padding-right: 20px;
caret-color: white;
font-weight: bold;
}
/** Style the text selection with this selector. */
::selection
{
background: #50FFFFFF;
color: white;
}
");
Label1.setLocalLookAndFeel(lblCss);
inline function onKnob1Control(component, value)
{
Label1.set("visible",true);
Label1.set("text", Engine.doubleToString(component.getValue(), 1) +" "+ component.get("suffix"));
Label1.set("width", Engine.getStringWidth(Label1.get("text"),Label1.get("fontName"), Label1.get("fontSize"), 0.15));
Label1.set("x",component.get("x")-(Label1.get("width")/2)+(component.get("width")/2));
Label1.set("y",component.get("y")-20);
valuePopupTimer.startTimer(1100);
};
Content.getComponent("Knob1").setControlCallback(onKnob1Control);
Content.getComponent("Knob2").setControlCallback(onKnob1Control);
Probably the best solution is a combination of yours and mine. Thank you very much again.
ezgif-4b86ba577ac754d8.gif