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 ..

(6 votes, average: 4.33 out of 5)
Thanks for this post! It´s been really useful, since I´ve been struggling for a solution to this ptoblem for several days. The parseArabic method worked fine for me.
kindly explain how o use it with dynamic text in flash if I’m loading an external Arabic text file.
I’m new in action script and i need it for Arabic applications
regards
Hello my friend, I would like to thank you for your trying to help us…
but.. I’m really have no knowledge about actionscripts or nothing about it… I’m even beginner in Flash, I installed the Adobe Flash CS4 professional, and I found that I can’t write Arabic, Noway.. and word splitted into each lonely character .. and from left to right
Now at the end of your topic, I downloaded the file “parsearabic_v1.0.zip”
but I don’t know where should I put it, or where should I extracvt the included files in?
or should I learn some programming languages to use it?? I hope not.
So please help me and tell me how could I use your file or where should I put it at???
Thank you very much, waitting for your answer… thanks
xVisage
@kaled
you can follow this example
xVisage
@ Bahaa
you’re most welcome
parseArabic method works only with programmatically rendered Arabic text, that means using ActionScript 2.0, if you don’t like to learn that, then I suggest that you simply use this example, paste your arabic text into the input field, then copy the correct arabic from the output field to your static TextField
Hi,
Very good work, I did notice some flaws however in the coding, here’s an example:
Try to use the follwing in the text:
???? ?? ????? ?????? ???????? ??????????? ???????? ???????? ???????? ????????? ???????? ???????? ?????? ??? ???? ??????? ???? ???? ??? ????? ??? ????? ???????????
and you will see that the ligatures break when certain diacritics are used…
it seems that arabic text was not rendered correctly in the comment as well, here’s a link to a screenshot:
http://www.sidani.info/test/screeny.jpg
As I mentioned – the method worked fine for me.. but now I found that the arabic text gets rendered with line break problems in Mac. Did you experience this problem as well? Is there a solution to it? Thanks
Great Job Ahmad.
I suppose this could help with the basic text display components.
Though you can’t really feal comfortable selecting the text.
Anyway I am working on a hack for solving the flow direction issue. Which will allow dynamic text input fields in runtime as well.
I will keep you posted.
Dear Sir
Excellent work.
However for some combination of Arabic still there is some problem.
Do you have any latest updates??
Please kindly help me.
Dominic
Riyadh
Saudi Arabia
Thanks for this post! It´s been really useful but I can’t use it to load text from xml file I face the same problem could anyone put an example for loading text from xml file by using this solution.
thanks my friends.
xVisage
@ Basem
Thank you very much, this is very encouraging, here is a newer version with more detailed specifications with a few improvements ..
@ Wassim, Martin, Dominic
Thank you all for your reviews, there’s a newer version available here, I hope your issues has been covered properly.
@ Mohamed
there’s an example using external XML included at the top of the class, and you’re welcome to use this one ..
I’ve been looking for this tutorial, thank you so much.
xVisage
you’re most welcome
there’s an improved version available here as well