LocalConnection. Why?
Browser support.
I've seen no reports on Flashcoders, Flexcoders,
or blogs about LocalConnection "not working". I've seen a few for
ExternalInterface. Usually they are work aroundable, but that's one more
thing to worry about in an already diffucult profession.
Secondly, relying on the browser makes your code
less portable. For example, I can add 5 lines of code in my Flex 1.5
apps, and make them work as executable applications. If you used
ExternalInterface, you couldn't do that.
Third, ExternalInterface blocks. While this
could be viewed as a nice thing by Win32/fat client developers, it is actually
a bottleneck. It doesn't scale; meaning, if a process takes 20 seconds,
so to will your app not do anything for 20 seconds. LocalConnection is
asynchronous, and Flash Developers (and soon to be Flex developers) are used
to this style of development: register for an event, do something, act on the
response. In the meantime, you can do other stuff like play animations,
have the user do other things in the app, etc. The process in the other
app has no direct impact on the app making the call. If, however, you're
Flex app you are talking to is having a recursion puke... well, that's an
indirect impact, but you can't really control that; bad code is bad
code. Fix it.
Fourth, security. ExternalInterface has
more tendrils in the browser, and thus is bound by the weird (weird to me)
security restrictions a browser places on it, like iframes, etc.
LocalConnection follows the standard rules of Flash Player. Easier to
debug, and easier to fix via crossdomain.xml, and underscore's in front of the
name.
Bottom line, you can still control SWF's that you
embed that are Flash 8, they are just stripped of code; they still retain
their labels. Additionally, as I've said before, plans by various
individuals are in the works for utilizing Socket to communicate to these
SWF's. In the meantime, LocalConnection enforced via Interfaces is your
best bet.
----- Original Message -----
Sent: Tuesday, July 18, 2006 12:18 PM
Subject: Re: [flexcoders] SWF Loader