Sat 20 Jan 2007
Doubt on Flex as the best option (2): Flash Player is cross-platforms/browsers?!
Posted by luar under Doubt Flex (aka Thinking in Usability)Main concern: better QA on Flash Player, make it more cross-platform/browsers and backward/forward compatible.
“Flash Player is cross-platforms/browsers“, I think it is a successful marketing wording deeply printed in every SWF developer brain. In fact, Flash Player does not 100% running the same in any platforms/browsers and even minor Flash Player versions.
When people said AJAX have to deal with a lot of cross-browsers problem, they are not truly modern browser JavaScript developers, it was the old story in browser wars (IE4 vs Netscape 4), to access a layer, we have to even use different script. The situation has changed, JavaScript is running “the same” in modern browsers (IE6+, Firefox, Safari, Opera), except the problem mainly due to the weakness/wrong support on CSS in IE and Opera. If you develop AJAX application and not using DIV+CSS (tableless) layout, you are quite easy to make it run perfectly in cross-browsers.
AJAX developers understand their own problem and more concern users, they will testing their applications thoroughly between different browsers, but SWF developers are different, they trust Adobe, they trust Flash Player. We only test in one browser+one Flash Player minor version during development. It cause us into a dangerous situation when production.
Here are some of the Flash Player differences:
Cross-platforms/browsers
- No Mouse wheel support in MAC
Mouse wheel support since Flash Player 7 for PC, all scroll bar in Flex component support, but even Mac have Mighty Mouse or support PC USB mouse since old MAC OSX (PPC version), mouse wheel is still not support in Safari or Firefox for MAC in Flash Player 9. - Mouse wheel scroll speed break user setting in OS
Mouse wheel scroll speed is configured in OS level, all application scroll bars will follow, but in SWF application, scroll speed is decided by own ActionScript, scroll bar in Flex component cannot follow the user own setting and create a bad user experience. - Wrong local path when deal with double-byte files name in Firefox
Please reference Ticore’s Blog: Flash Player for Firefox Plugin 本機路徑 Bug (Chinese). - IE memory leakage cause Flash Player cannot close connection with FMS
Please reference Ticore’s Blog: IE 記憶體洩漏 引起 Flash Movie 無法關閉的問題 (Chinese). - Wmode in Firefox break textfields input
Please reference MasoBlog: 文字框中文輸入問題 (Chinese) or Patrick Mineault: Firefox wmode=transparent is completely screwy and breaks textfields. - FileReferenceList.browse restrict file type cause a confusing for MAC user
It is not the fault of Flash Player, it is nature of MAC Finder, no extension box shows like Windows, so when you restrict user can upload some file types only:import flash.net.FileReference;
var allTypes = new Array();
var imageTypes = new Object();
imageTypes.description = "Images (*.jpg)";
imageTypes.extension = "*.jpg";
allTypes.push(imageTypes);
var fileRef:FileReference = new FileReference();
fileRef.browse(allTypes);Without good instruction in the screen, user may be confused why he cannot select any files.

- Encoding problem for Chinese characters when passing variables to Flash in HTML embed in different browser/encoding format
It is my previous research study: 在HTML中傳送中文到Flash研究 (Chinese). - PC Firefox run ActionScript slower when browser is not in focus
You can open the timer sample in Adobe site with Firefox, start the counter and minimize Firefox, you will find the time is slower. - No full screen, wmode support yet in Linux Flash Player 9
Please keep check on Emmy Huang or Tinic Uro or Penguin.SWF. - Flash-JavaScript communication problem in browser
IE+ flash9,0,16,0 + ExternalInterface =unknow javascript / script Error, Using getURL to call JavaScript will trigger onbeforeunload event in IE, FSCommand and Flash Player Version in Firefox, IE reversed word conflict and others… - Stop support on Legacy OS
Flash Player has dropped support on Windows 95, NT and MAC OS 9 since Flash Player 8 - Flash does not support all Linux platforms
Uh, Thanks for the “Linux” Support - Flash is stop running when browser is minimize in Safari
If you minimize Safari, the Flash running inside with stop function, for example, sound will stop playing, background music muted, web cam will stop function, live stream video feed will stop from the web cam (iSight). - Flash loading data problem through SSL in IE
Flex app works with FireFox but not with IE when using SSL
If you argue it is a problem Flash Player deal with browsers and what is the difference I argue that DOM+CSS deal with browsers? Overall performance are cross-platforms/browsers in AJAX/SWF but those minor flaws cause no difference between AJAX/SWF developers.
Here are some of the Flash Player differences:
Changes in major/minor Flash Player version
You should check Ticore’s blog (Chinese), he wrote many cases Flash Player is not backward/forward compatible:
- Flash 8 Key.onKeyUp Bug (another one: Key.onKeyUp bug in flash8 by Mixmedia): Flash Player 7 can detect continuous key up but Flash Player 8 cannot.
- LoadVars外部資料脫逸: Data is missed in Chinese Big5 encoding in LoadVars but working properly in loadVariables
- Flash Player SharedObject Bug: SO object name contain “./” cause Flash Player create folder start with “#” and end with “.” which cause this folder cannot write in data or delete.
- NetConnection.onStatus Bug: Flash Player 7 return infoObject but not in Flash Player 8/9.
- Flash Debug Player 9.0.28.0 Log 路徑改變: Log path is changed in Flash Debug Player 9.0.28.0.
- Flash Player 9 AS 2.0 LocalConnection GC Bug: Flash Player 9 cannot garbage collect LocalConection object but Flash Player 8 can.
Have you forgot every time Flash Player tighten its sand box? Sometimes it affects our previous work online (not local content):
- Unable to obtain ID3 tags from MP3s loaded into SWF in Flash Player 9
- Restricted access to media data originating from RTMP servers: Flash Player 9 cannot access video data or sound spectrum data for media loaded from RTMP (Flash Media Server) sources, although it can display and play video and sounds loaded from these servers.
Every major Flash Player upgrade introduces tons of new feature, but in between minor version, Flash Player has also improved with new features, bug/security fixes, so if you target for a major Flash version users, you have to be careful with what minor version they get, too:
- Print support for frame label name with #p in 4.0.20.0
- Send correct MIME content type for XML in 5.0.42.0
- Media (*.swf/jpg/mp3) continues to load even the user leaves the web page in IE, fixed in 6.0.29.0
- Masking device fonts support in 6.0.40.0 (release notes), 6.0.47.0 (TechNote), which one is correct?
- Accessing ID3 properties in MP3 files in 6.0.40.0
- Flash remoting support in 6.0.47.0
- Wmode support for PC Netscape in 6.0.65.0 and MAC browser in 6.0.67.0
- load crossdomain.xml apart from root server support in 7.0.19.0
- XML socket port allow lower than 1024 in 7.0.19.0
- Full screen mode in 9.0.28.0
You should also check Adobe site for every Flash player major/minor version released, what existing contents have broken or any previous problems have fixed:
- Flash Player 9 Emerging Issues
- Flash Player 9 Release Notes
- Flash Player 8 Release Notes
- Flash Player 7 Release Notes
- Flash Player 6 Release Notes
- Flash Player 5 Release Notes
Finally, EOLAS case (not Adobe/Flash Player fault) caused SWF developers have to work back on our old works by a sudden mid-night call from clients? Flash Player is cross-platforms/browsers? Flash Player is backward/forward compatible? LOL, we faced the same situation as AJAX developers…
Follow up

January 20th, 2007 at 8:12 pm
Is this all you need fixed?
Software is an imperfect science and bugs happen especially in trying to accommodate different browser implementations. What is interesting is that the issue you raise are all interface issues at the Flash Player boundary. It also is relative to how close you look at the issues, the ones you mention are relatively small known issues. Take the jump from IE6 to IE7, the jump from FP8 to FP9 was much smoother by several orders of magnitude.
What is nice is that within SWF file format is that the ideal is perfect backward compatibility, many formats do not even make an attempt. Over time we have gotten much better on these bugs and newer players fix these issues.
Making software quality great takes time, effort, and constant vigilance. The Flash Player teams care allot about these issues.
Thanks for posting the issues, now we just need a web wide public bug-base so that these quality issues get documented and fixed longer term. No worries, I am working on it!
Cheers,
Ted
January 20th, 2007 at 9:11 pm
Where’s the list of platform/browser differences for Ajax, which you say runs “the same”? Not only would it be many times longer, but the issues would be much more serious and mainstream.
January 21st, 2007 at 12:02 am
Take all your arguments as you will. I have lots of Flex applications that run just like I expect. No one calls me and tells me it doesnt work.
I have several AJAX applications using prototype and we get calls everyday ie6 on xp sp2, ie6 on xp sp1 working differently. I fully accept that this is something that I may have done wrong but we cant duplicate the problems they are having. So we cant fix the problem with the AJAX applications.
When I deploy a flash application I can check and make sure they have the version of flash player they need and if they dont, i can help them get it very simply. Lets see me tell someone they shouldnt sue IE and should use Firefox, and then automate the upgrade process for them. Just so I can use AJAX in an environment that is consistent.
Browsers have a long way to go before AJAX is a technology i can trust in my customers hands.
January 21st, 2007 at 12:23 am
Flash Player VM its overall the most popular software that this planet has given us until now.
There are more problems than you mentioned, that are maybe hard to address, there are easy problems that we always face: lets not forget about Stage.onResize event in firefox, that helps you create the nifty “full browser flash” applications, or the onRollOver/onRollOut event that do not trigger properly, or the confusion about time being dependent on fps(its not really a bug, but its mind blowing)
But there are also more obscure real problems with the player, that you face when you try to deal with more advanced shoes of the technology, lets say when you deal with loading a cached flv file from browser cache, the behaveour its totally different in firefox than in ie or opera (it takes ages to load it back, sometimes its faster to restore the file directly from the site than from the cache)
Overall, we have flash player and java sharing for the “CROSS PLATFORM” paradigm ( i do not forget firefox/gecko engine, the hidden technology of the web (no one knows about xul these days, but they know about xaml or mxml …)), the other are just fooling around.
January 22nd, 2007 at 2:16 am
[...] Doubt on Flex as the best option (2): Flash Player is cross-platforms/browsers?! [...]
January 22nd, 2007 at 2:57 am
to Ted:
Yes, Flash Player need a site like http://www.quirksmode.org/bugreports/index.html for public to submit and review bug related to platform, browser and different Flash Player versions
January 23rd, 2007 at 12:37 am
Aww, come on ! Using the Flex DataGrid vs. trying to do a DHTML table that does the same thing ?
I can’t see anything in your list that would turn me or most other programmers who’ve written both DHTML and Flex away.
May 9th, 2007 at 11:14 pm
[...] As a developer, do not trust Adobe! Flash Player is not must be cross-platform as you think! [...]
March 22nd, 2008 at 1:28 am
Very extensive writeup, thanks. One minor quibble: it’s a Mac, not a MAC…
April 10th, 2008 at 10:03 am
If you find any bugs with the Flash Player, I would encourage you to submit them to the Adobe Flash Player bug tracker. That way, we can all benefit from the knowledge and hopefully subsequent improvements. In my experience with the Flex framework, Adobe takes fixing bugs in their software seriously. Good luck trying to get Microsoft to change anything in IE!