It’s been a while since I posted anything useful (not sure if I ever have) but anyway here’s a tip for the Haxe / OpenFL coders out there.
Sometimes you need to have responsive, flowing text in your application and still use it to trigger functions, just like a webpage. So here is the solution. This works with a regular OpenFL text field, or a Label in FeathersUI.
var walkThruText = new TextField(); //or new Label();
walkThruText.htmlText = 'Want a walkthrough on how to use the tool?<br /><font color="#0000ff"><a href="event:tutorialClick">Watch this short tutorial</a></font> to become an expert.';
walkThruText.addEventListener(TextEvent.LINK, (linkEvent:TextEvent)->{
switch (linkEvent.text){
case "tutorialClick":
trace("You clicked the link!");
}
});
So the secret is to add an event with a name as the href on the <a> tag, then listen for the TextEvent when it gets clicked.
Bonus tip: text formatting within a TextField can be applied by either using the “setTextFormat” method on a text field and providing a start/end range, or you can use various html tags as listed here.
I hope this helps someone!