<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>codehesive.com : interaction design, ux, data visualisation, gaming &#38; miscellany &#187; Flash</title>
	<atom:link href="http://www.codehesive.com/index.php/archive/category/web-general/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codehesive.com</link>
	<description>design + coding, data visualisation and internationalisation</description>
	<lastBuildDate>Thu, 10 May 2012 10:34:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Eurostar: a bit of irony and some great customer service</title>
		<link>http://www.codehesive.com/index.php/archive/eurostar-a-bit-of-irony-and-some-great-customer-service/</link>
		<comments>http://www.codehesive.com/index.php/archive/eurostar-a-bit-of-irony-and-some-great-customer-service/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 12:32:43 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[   Web Design + Development]]></category>
		<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/?p=745</guid>
		<description><![CDATA[Looking into booking Eurostar tickets for next year and I encountered this: The old chestnut of Flash banners overlaying any object on the page. But the irony here is that the Flash banner is advertising Eurostar&#8217;s flash sale. Oops. Actually, I choose to blame UKBA &#8212; if it wasn&#8217;t for the strike next week, the [...]]]></description>
			<content:encoded><![CDATA[<p>Looking into booking <a href="http://eurostar.com">Eurostar</a> tickets for next year and I encountered this:</p>
<p><img src="http://www.codehesive.com/wp-content/uploads/2011/11/eurostar1.png" alt="" title="eurostar" width="640" height="420" class="aligncenter size-full wp-image-753" /></p>
<p>The old chestnut of Flash banners overlaying any object on the page. But the irony here is that the Flash banner is advertising Eurostar&#8217;s flash sale. Oops.</p>
<p>Actually, I choose to blame <a href="http://www.ukba.homeoffice.gov.uk/">UKBA</a> &#8212;  if it wasn&#8217;t for the strike next week, the info box here wouldn&#8217;t be pushing the banner down.</p>
<p>But kudos to Eurostar&#8230;</p>
<p><a href="https://twitter.com/#!/joffley/status/140394275077754880"><img src="http://www.codehesive.com/wp-content/uploads/2011/11/twitter_euro11.png" alt="" title="Twitter conversation with Eurostar" width="641" height="414" class="aligncenter size-full wp-image-749" /></a></p>
<p>Stellar social media service!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/eurostar-a-bit-of-irony-and-some-great-customer-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TED Translations: free to the world</title>
		<link>http://www.codehesive.com/index.php/archive/ted-translations-free-to-the-world/</link>
		<comments>http://www.codehesive.com/index.php/archive/ted-translations-free-to-the-world/#comments</comments>
		<pubDate>Wed, 18 May 2011 16:14:45 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[   Web Design + Development]]></category>
		<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Interface design]]></category>
		<category><![CDATA[Localisation]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/?p=286</guid>
		<description><![CDATA[TED Talks are wonderful. Yesterday I watched this fascinating video by Eli Pariser, entitled Beware online &#8220;filter bubbles&#8221;: While watching the video (on the TED website) I noticed the subtitle options. TED has a fantastic translation scheme where users can transcribe translations for videos &#8212; a staggering 18,265 translations so far. But user experience-wise, this [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ted.com">TED Talks</a> are wonderful. Yesterday I watched this fascinating video by Eli Pariser, entitled <a href="http://www.ted.com/talks/eli_pariser_beware_online_filter_bubbles.html">Beware online &#8220;filter bubbles&#8221;</a>:</p>
<p><!--copy and paste--><object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talk/stream/2011/Blank/EliPariser_2011-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/EliPariser-2011.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=1091&#038;lang=eng&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=eli_pariser_beware_online_filter_bubbles;year=2011;theme=new_on_ted_com;theme=bold_predictions_stern_warnings;theme=what_s_next_in_tech;theme=a_taste_of_ted2011;event=TED2011;tag=Culture;tag=Global+Issues;tag=Technology;tag=journalism;tag=politics;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2011/Blank/EliPariser_2011-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/EliPariser-2011.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=1091&#038;lang=eng&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=eli_pariser_beware_online_filter_bubbles;year=2011;theme=new_on_ted_com;theme=bold_predictions_stern_warnings;theme=what_s_next_in_tech;theme=a_taste_of_ted2011;event=TED2011;tag=Culture;tag=Global+Issues;tag=Technology;tag=journalism;tag=politics;"></embed></object></p>
<p>While watching the video (on the <a href="http://www.ted.com/talks/eli_pariser_beware_online_filter_bubbles.html">TED website</a>) I noticed the subtitle options. TED has a fantastic translation scheme where users can transcribe translations for videos &#8212; a staggering 18,265 translations so far. But user experience-wise, this scheme has some critical issues.</p>
<p><span id="more-286"></span></p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/05/ted31.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/05/ted31.png" alt="TED Video player" title="ted3" width="450" height="416" class="aligncenter size-full wp-image-296" /></a></p>
<p>The default labeling for the subtitle feature is &#8216;Subtitles Available in: <em>X</em> languages [Off]&#8216;. Your main call to action to help people who perhaps don&#8217;t speak English is&#8230; well, in English. There&#8217;s not even any sort of icon to suggest non-English content is available: unless you speak enough English to understand &#8216;subtitle&#8217; or &#8216;languages&#8217;, then your really reliant on pure luck to spot this. And even then, there&#8217;s another trap: you must know the English name for your language. This same issue repeats itself on the actual translation page &#8212; users are presented with a list of language names &#8216;in your language&#8217; &#8212; but the language names are all in English.</p>
<p>It&#8217;s quite probable that most users will be able to find their own language in a list of English names. But it&#8217;s not fun, and by no means a good user experience &#8212; consider finding a link entitled &#8216;Inglés&#8217; on a website in Spanish.</p>
<p>A similar problem is present on the TED homepage. To access the huge translation program, you need to select the link &#8216;Translations&#8217;. Again, you need to know the English word. </p>
<p>Interestingly, if you search for TED on <a href="http://www.google.it/#hl=it&#038;xhr=t&#038;q=ted&#038;cp=3&#038;pf=p&#038;sclient=psy&#038;site=&#038;source=hp&#038;aq=0&#038;aqi=&#038;aql=&#038;oq=ted&#038;pbx=1&#038;fp=1&#038;biw=1356&#038;bih=780&#038;bav=on.2,or.r_gc.r_pw.&#038;cad=b">Google in another language</a>, it&#8217;s pretty good at sending you to the relevant translation pages. And if you have an in-browser translation feature (such as Chrome), this also makes it much easier to find these translations in your language (except even if you do translate the whole page, the subtitle options in Flash <em>won&#8217;t</em> get translated).</p>
<p>The TED strap-line &#8216;Riveting talks by remarkable people, free to the world&#8217; is brilliant, yet I think the world could really enjoy TED a lot more if they made a few simple changes:</p>
<p>1. Redesign the video player. Create an icon denoting other language support (and my attempt below is by no means a great icon!) and vitally list languages in their native name (just like on Wikipedia entry pages) &#8212; also apply this anywhere else on the site where languages are listed.</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/05/ted2.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/05/ted2.png" alt="TED Video player" title="ted2" width="450" height="388" class="aligncenter size-full wp-image-290" /></a></p>
<p>Sure, there&#8217;s still English in the subtitles area, but I think something like this would be a tremendous step in the right direction. And an extra killer feature would be defaulting subtitles (if available) to the user&#8217;s language.</p>
<p>2. Look at the user&#8217;s default browser language and give them a clear invitation to view translations in their language:</p>
<p><a href="http://www.codehesive.com/wp-content/uploads/2011/05/mira.png"><img src="http://www.codehesive.com/wp-content/uploads/2011/05/mira.png" alt="TED en español" title="mira" width="450" height="320" class="aligncenter size-full wp-image-287" /></a></p>
<p>Of course it&#8217;s easy for someone to think up design ideas for someone else&#8217;s website: I know nothing about how the TED site works and whether any of this is even feasible, but I still felt it worth noting these ideas down, as it would be great to see the TED site provide a better experience for non-English speaking users.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/ted-translations-free-to-the-world/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why is Flash so lousy at localisation?</title>
		<link>http://www.codehesive.com/index.php/archive/why-is-flash-so-lousy-at-localization/</link>
		<comments>http://www.codehesive.com/index.php/archive/why-is-flash-so-lousy-at-localization/#comments</comments>
		<pubDate>Sat, 07 May 2011 14:21:15 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[   Web Design + Development]]></category>
		<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Localisation]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/?p=181</guid>
		<description><![CDATA[Originally I intended this post to be a series of examples demonstrating some of the hassles involved when dealing with multi-lingual content in Flash. But it occurred to me that the issue isn&#8217;t so much that Flash is difficult for this purpose, it&#8217;s more that it&#8217;s lousy. It&#8217;s way behind the curve considering where the [...]]]></description>
			<content:encoded><![CDATA[<p>Originally I intended this post to be a series of examples demonstrating some of the hassles involved when dealing with multi-lingual content in Flash. But it occurred to me that the issue isn&#8217;t so much that Flash is difficult for this purpose, it&#8217;s more that it&#8217;s <em>lousy</em>. It&#8217;s way behind the curve considering where the rest of the web is today in this regard, and incredibly the situation was far worse not much more than twelve months ago (before Adobe released <a href="http://tv.adobe.com/watch/learn-flash-professional-cs5/creating-text-with-the-new-text-layout-framework-tlf">Flash CS5 and the Text Layout Framework</a>).</p>
<p>The rationale for this post came after attending a talk at SXSW 2011 &#8212; &#8216;<a href="http://schedule.sxsw.com/events/event_IAP6458">Flash is Dead, Long Live Flash!</a>&#8216;. The presenters, <a href="http://twitter.com/#!/ElliotChong">Elliot Chong</a> and <a href="http://www.tobymiller.com/">Toby Miller</a>, gave a great overview of strengths and weaknesses of both Flash and HTML 5. However, one point of debate they missed was localisation. Not that I expected to hear it, but I feel strongly about such things considering this is a big part of my <a href="http://www.bbcworldservice.com">day job</a>. During the Q&#038;A session, I brought up the point of localisation &#8212; but explaining technical trivialities on the spur of the moment in front of a large crowd of peers can be tricky: hence this post.</p>
<p><span id="more-181"></span></p>
<p>Let&#8217;s start with the simple things. Now Flash actually provides fine support for most languages &#8212; even Chinese and Japanese are OK. Until you get into <a href="http://en.wikipedia.org/wiki/Complex_text_layout">complex scripts</a> &#8212; we&#8217;re talking Arabic, Fari, Hindi, Urdu and many more. Basically any alphabet that changes the ligatures between characters, depending on the characters present.</p>
<p><em>Caveat:</em> I&#8217;m a designer first and developer second&#8230; if I&#8217;ve got something wrong here please let me know &#8212; anything new I can learn to make my life easier is always appreciated!</p>
<p>So, let&#8217;s look at what problems Flash will give us trying to put Arabic text on to the stage. Let&#8217;s use the Arabic word for kitten. This is how it appears correctly rendered in plain old HTML (right aligned since Arabic is read right-to-left &#8212; another point to touch on, but we&#8217;ll get to that later).</p>
<div lang="ar" xml:lang="ar" style="height:100px;width:450px;line-height:10em;background:#f8dc86;color:#243616;font-family:arial,sans-serif;text-direction:rtl;text-align:right;"><span style="padding:5px;font-size:85px;">القطط</span></div>
<p><script type="text/javascript">
$(function() {
$("div#e1 div").flashembed("/flash_i18n/kittens01.swf");
$("div#e2 div").flashembed("/flash_i18n/kittens02.swf");
$("div#e3 div").flashembed("/flash_i18n/kittens03.swf");
$("div#e4 div").flashembed("/flash_i18n/kittens04.swf");
$("div#e5 div").flashembed("/flash_i18n/kittens05.swf");
$("div#e10 div").flashembed("/flash_i18n/kittens10.swf");
$("div#e11 div").flashembed("/flash_i18n/kittens11.swf");
$("div#e12 div").flashembed("/flash_i18n/kittens12.swf");
$("div#e20 div").flashembed("/flash_i18n/kittens20.swf");
$("div#e21 div").flashembed("/flash_i18n/kittens21.swf");
});
</script></p>
<style type="text/css">
.kittens{margin-top:4px;position:relative;height:100px;width:450px;height:100px;background:url(/flash_i18n/bg_kitten_ar.png) no-repeat 0 0 #F8DC86}
.kittens div{width:200px;height:100px;position:absolute;top:0;right:0;}
.fullwidth{background-image:none;}
.fullwidth div{width:450px}
</style>
<p>Now, let&#8217;s try and show the same text in Flash&#8230;</p>
<h3>Example one: classic text field (SWF size: 4kb)</h3>
<div id="e1" class="kittens">
<div></div>
</div>
<p>The simplest way to put text on the stage in Flash is with a simple text box. Just create it on the stage, copy your text, and you&#8217;re away. But no, not with complex scripts. For some reason Flash is incapable of rendering the ligatures between characters together correctly in classic text fields. And the web is full of <a href="http://www.google.co.uk/search?q=flash+arabic+text+field&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:en-GB:official&#038;client=firefox-a">depressing forum posts</a> about people enduring frustrations at what appears to be such a trivial thing.</p>
<h3>Example two: dynamic text field (SWF size: 4kb)</h3>
<div id="e2" class="kittens">
<div></div>
</div>
<p>Again, this renders exactly the same as example one. Having dashed your hopes of static text displaying properly, surely you didn&#8217;t expect to be able to use dynamic text fields?</p>
<h3>Example three: <a href="http://tv.adobe.com/watch/learn-flash-professional-cs5/creating-text-with-the-new-text-layout-framework-tlf">Text Layout Framework (TLF)</a> text field (SWF size: 52KB)</h3>
<div id="e3" class="kittens">
<div></div>
</div>
<p>Hoorah! OK, so some credit to Adobe here &#8212; so you can display complex scripts properly straight on the stage. But <em>only</em> if you use the new <a href="http://tv.adobe.com/watch/learn-flash-professional-cs5/creating-text-with-the-new-text-layout-framework-tlf">Text Layout Framework</a>, which requires Flash CS5 and Flash Player 10+. And you can expect an additional 50kb on top of the SWF size! Prior to Flash CS5&#8242;s release in April 2010, this was all but impossible: the only way to display complex scripts in Flash properly was either as a vector exported from something like Illustrator (which, by the way, has supported complex scripts for a long long time) or as a bitmap from Photoshop (again, supports complex scripts).</p>
<h3>Example four: programmatic text field (SWF size: 52KB)</h3>
<div id="e4" class="kittens">
<div></div>
</div>
<p>Let&#8217;s try creating the text field with ActionScript:<br />
<code><br />
var myFormat:TextFormat = new TextFormat();<br />
myFormat.color = 0x233515;<br />
myFormat.size = 76;<br />
myFormat.font = "Arial";<br />
myFormat.align = TextFormatAlign.RIGHT;</p>
<p>var myTextField:TextField = new TextField();<br />
myTextField.text = "القطط";<br />
myTextField.width = 190;<br />
myTextField.height = 100;<br />
myTextField.selectable = true;<br />
myTextField.y = 6;<br />
myTextField.defaultTextFormat = myFormat;<br />
myTextField.setTextFormat(myFormat);  </p>
<p>addChild(myTextField);<br />
</code></p>
<p>Well, at least Flash renders the text in the correct order, but it still doesn&#8217;t correctly render the ligatures.</p>
<h3>Example five: programmatic Text Layout Framework text field (SWF size: 112KB)</h3>
<div id="e5" class="kittens">
<div></div>
</div>
<p>Let&#8217;s try creating the text field with ActionScript using the Text Layout Framework:<br />
<code><br />
import flash.display.Sprite;<br />
import flashx.textLayout.compose.StandardFlowComposer;<br />
import flashx.textLayout.container.ContainerController;<br />
import flashx.textLayout.elements.TextFlow;<br />
import flashx.textLayout.conversion.TextConverter;<br />
import flashx.textLayout.edit.SelectionManager;</p>
<p>var&nbsp;markup:String&nbsp;=<br />
"&lt;TextFlow&nbsp;xmlns='http://ns.adobe.com/textLayout/2008' fontSize='85' color='#233515' textIndent='15' paragraphSpaceAfter='15' font='Arial' paddingTop='25' paddingRight='25'&gt;<br />
&lt;ptextAlign='right'&gt;القطط&lt;/p&gt;&lt;/TextFlow&gt;";</p>
<p>var&nbsp;textFlow:TextFlow&nbsp;=&nbsp;TextConverter.importToFlow(markup,<br />
TextConverter.TEXT_LAYOUT_FORMAT);<br />
textFlow.flowComposer.addController(new ContainerController(this, 200, 100));<br />
textFlow.flowComposer.updateAllControllers();<br />
textFlow.interactionManager = new SelectionManager();<br />
</code></p>
<p>Hoorah, Text Layout Framework comes through again. But look at the file size now: 112KB. That&#8217;s 28 times the size of creating a simple text field programmatically. </p>
<p>Of course Text Layout Framework gives you a huge amount of text control, so the larger file size is somewhat understandable &#8212; but that big? Just to render a simple word?</p>
<p>These are all very simple examples, but just imagine how much more complex most projects will get in Flash if localisation is required. The extra complexity (and increased file size) from using Text Layout Framework would surely discourage most developers from using it, particularly if there is no need for localisation at the beginning of the project. This introduces a potential nightmare scenario of <em>rewriting entire applications</em> to use Text Layout Framework.</p>
<h2>Other gotchas with Flash and localisation</h2>
<h3>Font embedding</h3>
<p>Embedding fonts in your project? Your standard Latin character set (which covers most European languages) is pretty light weight. Let&#8217;s look at kitten in other languages:</p>
<h3>Example six: Latin font embedding (SWF size: 55KB)</h3>
<div id="e10" class="kittens fullwidth">
<div></div>
</div>
<p>Even adding in Latin I, Latin A and Latin B extended character sets for a font only adds about 56kb to your file (using Arial Unicode as your font). That&#8217;ll cover pretty much any Latin-based alphabet, from Icelandic through to Turkish. But now, let&#8217;s add Cyrillic and Greek. </p>
<h3>Example seven: Latin, Cyrillic and Greek font embedding (SWF size: 85KB)</h3>
<div id="e11" class="kittens fullwidth">
<div></div>
</div>
<p>Now we&#8217;re looking at another 32kb on top &#8212; 85kb in total. Now that&#8217;s really not much&#8230; but let&#8217;s now look at Chinese and Japanese.</p>
<h3>Example eight: Latin, Cyrillic, Greek, Simplified Chinese and Japanese font embedding (SWF size: 3.8mb)</h3>
<div id="e12" class="kittens fullwidth">
<div></div>
</div>
<p>For an embedded font that covers Latin, Cyrillic, Simplified Chinese and Japanese &#8212; you&#8217;re looking at a whopping 3.8mb.</p>
<p>So, if you&#8217;re planning on localising with dynamic Flash applications across many languages, you have two choices:</p>
<ol>
<li>Don&#8217;t embed fonts, just use device fonts &#8212; you&#8217;ll lose your nice text on many PCs, but your file size will be manageable</li>
<li>Embed fonts but create different files for each language &#8212; again, file size manageable but then you&#8217;re re-creating a whole bunch of files, and maintenance can become quite a nightmare if you&#8217;re not careful</li>
</ol>
<h3>The right-to-left UI</h3>
<p>Many right-to-left (RTL) languages are also complex scripts, so we&#8217;ve got a bit of a double-whammy here. Arabic, Farsi, Urdu&#8230; and even Hebrew (although at least that&#8217;s not a complex script!). Since RTL users read right to left, a good UI designer will re-align the interface in the same way: for instance, check out <a href="http://www.google.co.il/">Google Israel</a> or <a href="http://www.google.com/webhp?hl=fa">Google in Farsi</a>, and notice how the entire screen is &#8216;flipped&#8217; around. Even close buttons on dialogue boxes get flipped (such as this example from <a href="http://www.google.com/imgres?imgurl=http://library.gnome.org/misc/release-notes/2.20/figures/rnusers-arabic-window-switcher.png.oc&#038;imgrefurl=http://library.gnome.org/misc/release-notes/2.20/index.html.oc&#038;usg=__R7iCtNl8ltxmEyzoCvOYxnvcfzw=&#038;h=588&#038;w=750&#038;sz=264&#038;hl=en&#038;start=0&#038;sig2=H4e6wTWXgTDUBKBZN--foQ&#038;zoom=1&#038;tbnid=qi9HoDtp6NE_NM:&#038;tbnh=142&#038;tbnw=181&#038;ei=8dvDTd_VBsmo8AO01P39BA&#038;prev=/search%3Fq%3Dwindows%2Barabic%26um%3D1%26hl%3Den%26client%3Dfirefox-a%26hs%3Dpne%26rls%3Dorg.mozilla:en-US:official%26biw%3D1329%26bih%3D772%26tbm%3Disch&#038;um=1&#038;itbs=1&#038;iact=hc&#038;vpx=541&#038;vpy=87&#038;dur=1937&#038;hovh=199&#038;hovw=254&#038;tx=108&#038;ty=101&#038;page=1&#038;ndsp=24&#038;ved=1t:429,r:2,s:0">GNOME</a> on Linux).</p>
<p>This means you should do the same for all UI inside your Flash application. While it&#8217;s a bit of a hassle at first, what I&#8217;ve found causes the most problems when doing this is Flash&#8217;s Cartesian coordinate system &#8212; X and Y works great for left-to-right, but not so for right-to-left. </p>
<p>Align an object to the top left? Easy:<br />
<code>mc_object.y=10;<br />
mc_object.x=10;</code></p>
<p>But for RTL, we want it on the top right.<br />
<code>mc_object.y=10;<br />
mc_object.x=(stage.stageWidth-10);</code></p>
<p>When you&#8217;re doing that for all your UI elements, it can turn into a real chore. Never mind if you run into <a href="http://www.google.com/search?q=flash+browser+bug+stageWidth&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:en-US:official&#038;client=firefox-a#sclient=psy&#038;hl=en&#038;client=firefox-a&#038;hs=JGK&#038;rls=org.mozilla:en-US%3Aofficial&#038;source=hp&#038;q=flash+bug+stageWidth&#038;aq=f&#038;aqi=&#038;aql=&#038;oq=&#038;pbx=1&#038;bav=on.2,or.r_gc.r_pw.&#038;fp=83cdbc92ed5cf93c">stage.Width calculation bugs</a> which do happen when viewing the SWF in various browsers.</p>
<p>What if we were developing a HTML/CSS/Javascript application instead?</p>
<p><code><br />
#object{position:absolute;top:10px;}<br />
.rtl #object{right:10px;}<br />
.ltr #object{left:10px;}<br />
</code></p>
<p>Much, much easier! (Of course, there are plenty of browser bugs with CSS too, so it&#8217;s by no way perfect, but it is much better).</p>
<h3>Flash UI Components</h3>
<p>Using Flash&#8217;s inbuilt UI Components will cause you some problems too. You can move the scrollbar on a scrolling TLF text field to the right at least (you can do this <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/ScrollControlBase.html">programmatically</a>, too):</p>
<h3>Example nine: right-to-left scrollbar (SWF size: 119kb)</h3>
<div id="e20" class="kittens fullwidth">
<div></div>
</div>
<p>But it appears many other components (such as the <a href="http://forums.adobe.com/thread/694280">combobox</a>) have no TLF support <em>or</em> the ability to make them more RTL friendly (all the text below is rendered incorrectly in Arabic):</p>
<h3>Example ten: other Flash UI components (SWF size: 49kb)</h3>
<div id="e21" class="kittens fullwidth">
<div></div>
</div>
<h3>Conclusion</h3>
<p>For anyone looking at creating Rich Internet Applications that will work across different locales, given the growing market acceptance of CSS3, HTML5 and already accepted tools such as jQuery, Flash is looking like a really hard task for such work. </p>
<p>But disregarding all those points, let&#8217;s go back to the main thrust of this post: why is Flash so lousy at localisation? There are an estimated <a href="http://www.internetworldstats.com/stats7.htm">65 million Arabic users online</a>, and if you want to use Flash to provide content for these users, you&#8217;re in for a ludicrous development experience. For me, it&#8217;s really not good enough. Years ago Flash was targeted as being highly inaccessible, and even though it has made good progress, it&#8217;s highly inaccessible in another way: that of localisation.</p>
<p><a href="/flash_i18n/kitten_examples.zip">Download example Flash files</a> from this post (1mb).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/why-is-flash-so-lousy-at-localization/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flash Video: Where&#8217;s the Remote?</title>
		<link>http://www.codehesive.com/index.php/archive/flash-video-wheres-the-remote/</link>
		<comments>http://www.codehesive.com/index.php/archive/flash-video-wheres-the-remote/#comments</comments>
		<pubDate>Tue, 09 Aug 2005 08:59:39 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[  Web - General]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.codehesive.com/blog/?p=13</guid>
		<description><![CDATA[<a href="http://news.com.com">CNET News.com</a> has reported on <a href="http://www.macromedia.com/flash" rel="tag">Flash</a> 8's beefed up video capabilities, <a href="http://news.com.com/Flash+8+poised+to+take+on+Web+video/2100-1032_3-5808794.html?tag=st.prev">touting it as a serious contender to the world of video streaming on the web</a>. But there are some issues Macromedia really needs to look at.]]></description>
			<content:encoded><![CDATA[<p><a href="http://news.com.com">CNET News.com</a> has reported on <a href="http://www.macromedia.com/flash" rel="tag">Flash</a> 8&#8242;s beefed up video capabilities, <a href="http://news.com.com/Flash+8+poised+to+take+on+Web+video/2100-1032_3-5808794.html?tag=st.prev">touting it as a serious contender to the world of video streaming on the web</a>. But for me, there is some serious work that needs to be done on Flash.</p>
<p><span id="more-13"></span></p>
<p>I like watching videos through Flash. The Flash plugin seems to hog far less memory than Windows Media, Quicktime or Realplayer. It&#8217;s generally less obtrusive; the only big spinning logos before the video starts playing as that of the author or studio (if there are even any), again in contrast to the big three players mentioned.</p>
<p>CNET plays this factor up:</p>
<blockquote><p>In several demonstrations of Flash video in recent months, Macromedia has mocked the experience that some Web surfers go through when trying to access RealNetworks or Windows Media video clips. In the demonstration, the people trying to access the video are confronted with dialogue boxes prompting the download of large players. Then they have to choose bandwidth speeds and other options.</p>
<p>Flash video, by contrast, is &#8220;playerless.&#8221; That means video clips play embedded in the Web page, and Flash developers can design their own interfaces and determine their own buffers and other technical settings. </p></blockquote>
<p>The last paragraph really sets Flash up as a double-edged sword. It has low visibility as a plugin, but the lack of interface (which could easily be as unobtrusive as the plugin) is a real problem. I cannot believe Flash has been out for so long with its woefully inadequate movie controls. </p>
<p>I can rewind and play, but there is no pause functionality or any semblence to the controls that come with the likes of Windows Media Player, Quicktime, Real and even your domestic <acronym title="Digital Versatile Disc">DVD</acronym> and <acronym title="Video Casette Recorder">VCR</acronym> players. Unless the developer has included a set of controls, if you missed something in a Flash movie, chances are you have to start all over again. I&#8217;ve lost count of the amount of times I had to start <a href="http://www.homestarrunner.com" rel="tag">Homestar Runner</a> clips from the beginning on my lunch break after being interrupted by my boss &#8211; my desire for a simple &#8216;pause&#8217; button disappearing into oblivion. <a href="http://www.macromedia.com/breeze" rel="tag">Breeze presentations</a>, a new product for webcasting incorporating Flash technology, has these controls embedded into the Flash movie. Better, but still, how hard is it to give the Flash player a stock-standard set of movie controls?</p>
<p>The CNET quote creates another problem: designer&#8217;s creating their own interfaces. This is bad news for users, who will now have to contend with a multitude of differing interfaces, all with minor variations, icons and nuances. </p>
<p>How long before Macromedia puts a simple movie control in with the Flash player? Maybe I&#8217;m missing something. Maybe it&#8217;s to do with potential inteference with timelining and action scripting. A fair point, but surely including a default control interface could at least be an optional feature when creating movies? <a href="http://www.macromedia.com/devnet/mx/flash/articles/media_behaviors.html">Macromedia has code on its site for creating these controls</a>, but it still baffles me as to why these aren&#8217;t a default feature bundled with the player as opposed to each <acronym title="Shock Wave Flash">SWF</acronym>.</p>
<p>Jakob Nielsen touched on some of the issues raised here in his in his infamous 2000 rant <a href="http://www.useit.com/alertbox/20001029.html">&#8220;Flash: 99% Bad&#8221;</a>. Macromedia later hired him as a consultant to improve Flash usability; so they must be aware of this problem. </p>
<p>Please someone tell me the incredibly obvious reason there aren&#8217;t bundled timeline controls in Flash &#8211; because I can&#8217;t understand its absence.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codehesive.com/index.php/archive/flash-video-wheres-the-remote/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

