As per my previous post here, I’ve made some improvements to my method for proper Arabic rendering in a dynamic TextField using ActionScript 2.0.
An ActionSctipt 3.0 version available here
Many thanks to all reviewers, your comments were very helpful bringing this version available, now you can use and test my new parseArabic method ..
Requirements:
- Dynamic TextField
- HTML Enabled TextField
- Pre-Defined TextFormat
- Arabic Fonts must include a complete Arabic Presentation Forms-B (glyphs from FE70 to FEFE according to the Unicode Standard 5.2)
Features Supported:
- Embedding Fonts (just put a dynamic textfield on-stage and select at least Basic Latin (95 glyphs) and Arabic (1088 glyphs) from the Character Embedding menu).
- Arabic Ligatures.
- Word Wrapping.
- Bi-Directional text.
- HTML Text.
- Loading External text.
Features Not Supported:
- Arabic Diacritics.
Fixed Bugs:
- Correct Arabic Ligatures with/without embedding fonts
- Correct Brackets Directions
- Clean Line-Breaks
Here is an example works with this external XML file:
download the above example here
Note:
When you try to select and copy the above text into a static TextField it will display Arabic properly as well, just another benefit of this method, but if you paste the copied text into any other text editor you will see an alien version instead!
Update: a newer version available here
Well, this issue is a very old one, I’ve always experienced annoying problems each time I try to render Arabic text on run-time using Flash and ActionScript 2.0, Flash doesn’t support right-to-left languages, and when it comes to Arabic, we are talking about proper characters joining and word wrapping ..
I never stopped tracking this specific issue, googling it to find any new solution has been developed somewhere, for a long time I can only find this one, the guy have it perfectly solved, he was having his solution implemented using ActionScript 2.0 at some point earlier, but he stopped publishing that and kept his latest version only, which works with ActionScript 3.0, and for old fashion guys like me he left another version to manually copy proper Arabic text using an AIR application he developed here
Recently, Adobe says that they finally supports right-to-left languages along with bi-directional and complex script ones, only using ActionScript 3.0 and it requires Flash Player 10 or above, they even have an open source framework called Text Layout Framework, it’s perfect actually, it should put an end to this issue, but ..
I have my own objections, I made my quick test to check their new technique here, Arabic text is finally rendered properly, but why we have to add so many childs to our display list from different TextLines and TextBlocks instead of a single TextField? also we have to set a max width, and I couldn’t find a way to scroll through text unless I used a custom scroller and masking the text just like any other MovieClip or DisplayObject, personally, I find this much complicated experience just to display simple string!
I do like ActionScript 2.0 a lot more anyway, not just for handling text easily, but for many other reasons, I can stop to post another article to explain why I’m saying this, right now we need to know what I’ve reached regarding to our issue ..
In a nutshell, ActionScript 2.0 used to refuse right-to-left languages, so we can’t embed fonts, wrap text properly, and when it comes to Arabic text we also see our characters splitted which is inappropriate for Arabic readers, the old solution for this was loading text encoded in UTF-8 from external text/xml files, and still no word wrapping, and on Mac machines Arabic letters still splitted, we can align text but its direction still not right-to-left ..
So, logically, I know that I have to construct my Arabic text manually, to achieve that I had to analyze Arabic rules for character joining with all it’s special cases, and then find a way to force its direction to be left-to-right, and the word wrapping part is not that hard after all, this is basically what I did actually!
My only problem was in finding a way to inject all proper Arabic characters with its unique cases, for a long time I found that very difficult, Flash doesn’t allow me to copy those from other text processing tools, and of course there’s no way to type each character a lone in different cases using keyboard ..
Finally, I found a way to do that, and it was extremely simple! I found these charts at unicode official website, and that’s it! now I can instruct ActionScript 2.0 to handle my Arabic characters properly!
You’re most welcome to use and test my parseArabic method, it supports word wrapping, right-to-left, bi-directional (inline English characters), embedded fonts and custom text formats, here is an example:
download the above example here
The above approach doesn’t support html tags yet, it’s a bit confusing, but as I said, you’re welcome to contribute, your reviews can help improving the code ..
This may help any ActionScript 2.0 loyal friend, and I think the same approach can be used for ActionScript 3.0 as well, I will post that soon ..
For the first time I ask myself how to escape my great depression?! despite all what I’ve read about such emotional feelings, I still find it more like a lightening strike, we do not really know when it hits us ..
Who am I anyway, what really describes me best right now .. struggling between being plugged into technology and being shot into space .. living in a mad house in Egypt called Cairo .. hiding behind my mysterious imaginations .. and most of all .. suffering from a frequently brain-freeze status!
I used to believe that everything happens to me is because of some reason I’ve actually created myself .. I know that I’ve been buried between a keyboard and a screen for a long time .. and this is exactly what blocks my eyes from seeing so much in this world .. sometimes I feel like I can’t help it and I am addicted .. other times I feel like a prisoner .. how could I feel so much hesitation?
Hesitation .. I can’t ignore being afraid just by saying this word .. may be it’s my pride .. may be I’m writing this post trying to face it ..
I’ve always believed that there’s an answer to any question .. even if it doesn’t exist “yet” in human known history books .. even if it requires an extraterrestrial form of life .. and here I am seeking a new answer ..
Since my brain prefers the analytical behavior, then I might try acting like a seeker instead of talking like one .. and that requires taking off .. using my power of observation .. being exposed .. intentionally!
Yesterday I’ve joined Flash Camp in Egypt ..
Flash Camp Egypt is the most prestegious Adobe User Groups event in Egypt for 2009. Organized by Imagine – Adobe User Group in Egypt, and hosted by the AUC in their magnificent Bassily Auditorium at the New Campus in New Cairo.
Sarmady was one of the gold sponsors for the event, along with many other sponsors like Adobe Inc., Msn Arabia, Datum, O’Reilly, iStock Photo, Total Training, …, and many more.
Event sessions was concerning Adobe Flash Platform technologies and it’s benefits for digital business in Egypt, focusing on Adobe Flash Player and Adobe AIR runtime, involving the major authoring environments like Adobe Flash Professional, Adobe Flex Builder and the new product Adobe Flash Catalyst.
Flash Platform created a breakthrough into the digital market, by migrating the end-user practices to a whole new level of rich-internet experiences, which delivers the most compelling applications, content, and video to the widest possible audience.
We’re not talking about animation features only, but also interactive content, data visualization, rich applications, media and gaming experience, all in one light-weight software platform used by 99% of internet users, the Flash Player.
Sarmady always in a hunt for new technologies, especially creative and interactive ones, we use Flash Platform interactive features for all our digital advertising campaigns, also we have developed special reporting services like Dwell Time, Leading Actions, and many more to come ..


(6 votes, average: 4.33 out of 5)