Is Adobe Flash browser independent?
We're building a browser-based application using Adobe Flash/Flex th开发者_运维技巧at needs to run in multiple versions of the major browsers (IE, Firefox, and preferably Chrome and Safari) and preferably on multiple operating systems. Is Flash Player truly browser independent such that if we test the application in only one browser, we're assured it will work properly in all the other browsers? If not, are there certain types of functionality we should avoid to assure browser independence so we can limit the number of environments we need to test?
Yes, Flash Player itself is truly browser independent. The only problems can be in rare bugs which occurs in some particular browsers (like problem with cookie in FireFox with file upload using FileReference
etc). But the number or such bugs is not any critical.
Two issues I've seen:
- FileReference.upload() can be flaky in some browsers where it does not pass cookie information that identifies the user's session (such as Java's "jsessionid").
- Various web browsers support a different number of concurrent network connections against a single hostname. For instance, IE 7 and earlier only supports two whereas most other browsers support 6-8. This can cause a significant performance difference in applications that make a large number of network calls for data. More info: How many concurrent AJAX (XmlHttpRequest) requests are allowed in popular browsers?
Another thing to keep in mind is the recent integration between Flash Player 10.2 and Internet Explorer 9. IE9 has hardware-accelerated rendering support and FP 10.2 has integrated that feature to improve rendering performance, up to 35% faster according to MS / Adobe. You will want to test your application in a browser that doesn't have Flash hardware acceleration support to make sure the rendering performance is acceptable. More info: http://blogs.msdn.com/b/ie/archive/2010/12/03/flash-player-10-2-beta-supports-ie9-s-hardware-acceleration.aspx
No. Flash has a special version which runs in IE. Normally this isn't an issue, but I have noticed times when there has been a major performance lag on the IE version. Cost me a couple of days of development time once.
That said, the situation I was working with before had a vast amount of data sent over some fairly computation-intensive processes. I would wager that I found the 1 in 10000 corner case.
By and large, for almost all intents and purposes, yes. Code and positioning should work the same way across any platform in which you deploy the content.
That said, there are special-cases but they tend to be incredibly difficult to encounter. Ones that I have seen:
The player may or may not know its height/width immediately on instantiation in certain versions of IE (this is very rarely ever a concern. I have seen this happen precisely one time in 3 years)
Using frame-based states can cause problems when used in conjunction with flash's PrintJob class in IE6, if the user happens to have Flash Player 10.0 installed (Horrifying, firey crash when changing frames. Only happened in IE6 and with that specific version of FP. I encountered this one time in all of 3 years)
Bear in mind that these stand out because of their rarity. Over the course of years, the number of times that cross-browser/OS problems cropped up with Flash has been less than I can count on one hand.
I can only think of 2 issues you may run into.
Safari handles socket connection slightly different then in other browsers. I had an issue where my ActionScript data received events were breaking because Safari didn't buffer them. This caused me to have to rewrite my socket classes.
The other issue I can think of is with file reference across different OSs IE: windows and mac.
One issue that stumped me for a while came from the integration between flash and the browser not being too hot.
IE (older versions, not sure about newer) has a limitation on the length of a URL - which can get quite long if you're appending many parameters to a query string. Flash player will happily pass a long url request to the browser but if IE fails due to the length the flash player tells you nothing
精彩评论