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)[10] Comments
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;Without good instruction in the screen, user may be confused why he cannot select any files.
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);
- 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
























