This project is a port of the Twitter Emoji Project, Twemoji. The aim of this project is to provide Emoji support on Roku using scenegraph and brightscript.
Download the zip containing the source, and unzip the source files. Place the source and components directories inside your project, in the same folder.
Alternativly, use component libraries to install the EmojiOnRoku project. See the component library documentation here: https://developer.roku.com/docs/references/scenegraph/control-nodes/componentlibrary.md.
Also check the releases page on this Github repository for the correct url for the component library. Checkout the demo project for a working example.
To use emoji in your project, create an EmojiLabel and set its text property to a string
containing emojis:
Code:
myEmojiLabel = createObject("roSGNode", "EmojiLabel")
myEmojiLabel.text = "Hello 👨🏻🦰! I am happy 😊 to see you. See emoji 👩🏽🦱 chars!"
myEmojilabel.translation=[200, 500]
m.top.appendChild(myEmojiLabel)Result:
You can also set the color, font, height, and other properties like you would on an ordinary
Scenegraph Label node. The emojis are shown at
72x72 size unless you specify the height or emojiSize
properties:
Code:
myEmojiLabel.height = 24
myEmojiLabel.color = &h00AAEEFFResult:
Finally, aligment can also be used, just as for normal Scenegraph Label nodes as well.
Here are all horizAlign and vertAlign combinations for the same EmojiLabel, who
has a width and height set to the fullscreen size.
Note that it is recommended to use center for vertAlign (the defualt), since this will align the emojis
relative to the text labels as well.
Code:
myEmojiLabel.width = 1920
myEmojiLabel.height = 1080
myEmojiLabel.horizAlign = "left" ' or "center" or "right"
myEmojiLabel.vertAlign = "top" ' or "center" or "bottom"
myEmojiLabel.color = &h00AAEEFFResult:
Note that it is recommended to set an explicit width on labels before using "center" or "right" for horizAlign.
When setting an explicit width, if the width of the label/emojis go over that width, the labels will use an ellipsis. If the cutoff is in the middle of an emoji, however, the emoji will not be replaced by an ellipsis.
Copyright 2020 Kasper Gammeltoft Code licensed under the MIT License: http://opensource.org/licenses/MIT