JavaScript - working with Emoji's or the café problem
Working with non-English languages or emoji's and finding that strings get garbled or just don't add up? Let me try to explain why...
A tech blog giving usable explainers, advice, tools, tricks and techniques for the Konva JavaScript canvas library, the HTML5 canvas, and related subjects.
Working with non-English languages or emoji's and finding that strings get garbled or just don't add up? Let me try to explain why...
I was curious about how to close Konva lines, and I wanted to explore what we can do with lines and animation - here's where it ended up.
This was originally a StackOverflow question asked about 7 years ago. I preserve it here because the answer continues to receive upvotes, so seems of interest to some folks, and it was voted to close on SO.
When we exchange position and size information with Konva, multiple coordinate systems come into play. We normally use the canvas or stage coordinates but others are available. Knowing which to use will save a lot of frustration later. Lets investigate...
I mistakenly thought that a math-based mouse pointer hit testing approach might be faster than Konva's built-in approach. In the end I had to agree that Konva has it covered and there's no optimisation to be done. Here's the explanation...
A question I see sometimes is how can we know when the layer gets redrawn. Firstly I recommend that you don't sweat about this - Konva does a perfectly good job without you interfering. But if you absolutely have to there is a way. Let's take a look...
There's more to writing code than simply, well, writing code! With anything graphical there is always the potential for runaway development that doesn't plan for the scale ahead. This article is about why you need to consider a model. Take a look...
So you need undo-redo for your project. The uniqueness of your app means there's no perfect out-of-the-box solution. But the good news is that you're here and this blog describes an overall approach that you can adapt to meet your needs.