Hi Vocal

SWFObject does not analyze or communicate with the contents of a SWF, so it
doesn't care whether it's a debugger SWF or production SWF. All it does it
write an <object> to the DOM based on the parameters you provide.

I suspect that the issue lies in Flash Player and the SWFs themselves. I'm
guessing if you try your embed with something other than SWFObject, you will
still see the load times vary between the debugger and production SWFs.

- philip


On Wed, Feb 17, 2010 at 8:33 AM, Alex Harui <[email protected]> wrote:

>  Debug builds have extra opcodes for the debugger and do not have
> optimized constant pools so that will definitely make them slower than
> release builds.
>
>
>
> On 2/17/10 8:23 AM, "Sam Sherlock" <[email protected]> wrote:
>
> I don't know about flex but I would expect debug builds to have an
> additional overhead compared with production builds
>
>  - S
>
>
>
>
> On 17 February 2010 16:02, VocalPlayboy <[email protected]> wrote:
>
> Here's an example:
>
> Both pages are identical except for the swf file (a.swf).
> a.swf is built from the same source but just published differently as
> either release or debug.
>
> http://www.strangeloopstudios.com/swfobject_multiple_embed/debug_build_swf/
> - slow.
> or
>
> http://www.strangeloopstudios.com/swfobject_multiple_embed/release_build_swf/
> - fast.
>
> ponder that!
>
> On Feb 17, 3:46 pm, VocalPlayboy <[email protected]> wrote:
> > This is going to sound odd, so i hope i'm wrong but...
> >
> > It's nothing to do with having an empty swf (surprise) - after doing
> > some tests i suspected that only Flash IDE swfs were working as
> > anything i tested built in Flex Builder 3 wouldn't work, yet using any
> > other swfs locally or swiped from the net worked fine.
> >
> > I thought why not try a bin-release version of any of the swf files i
> > had already tried (which all came from bin-debug) within Flex Builder
> > 3... and there it was, if its a bin-debug swf using my code above the
> > page hangs and hangs but if i test using bin-release it's there
> > instantly as expected. I have tested with 6 seperate swf applications
> > ranging in complexity and size from a couple of hundred kilobytes to a
> > couple of meg.
> >
> > Every time it's instant! Bizarre...
> >
> > So what's the difference? Is swfobject waiting for something from the
> > swf that is not instantly available in a debug version but is in a
> > release build?
> > I'm assuming that Flash IDE always publishes the equivalent of a Flex
> > Builder release build, so maybe this is actually a swfobject bug that
> > only shows with multiple debug files?
> > Maybe it's there for a single debug file but just hard to notice...
> > i've tried it with just 1 swf and the release is always slightly
> > faster to render a page.
> >
> > Any comments? Does this make sense?
> >
> > On Feb 17, 3:19 pm, VocalPlayboy <[email protected]> wrote:
> >
> > > Hi All,
> >
> > > I've sussed the issue and the swfobject code and my js above does
> > > indeed work - very fast!
> > > However what i've noticed is that it only works with swf files that
> > > have something in them.
> >
> > > My flex and/or as classes looked like this:
> >
> > > AS ONLY
> > >
> ###############################################################################
> > > ->
> >
> > > package
> > > {
> > >         import flash.display.Sprite;
> > >         import flash.external.ExternalInterface;
> > >         [SWF(widthPercent="100", heightPercent="100", frameRate="40",
> > > backgroundColor="#242424")]
> > >         public class a extends Sprite
> > >         {
> > >                 public function a()
> > >                 {
> > >                         if(ExternalInterface.available)
> > >                         {
> > >                                 ExternalInterface.marshallExceptions =
> true;
> > >                         try
> > >                         {
> > >                                 ExternalInterface.call("initializedOk",
> "test");
> > >                         }
> > >                                 catch(e:Error){}
> > >                         }
> > >                 }
> > >         }
> >
> > > }
> >
> > > FLEX
> > >
> ###############################################################################
> > > ->
> >
> > > <?xml version="1.0" encoding="utf-8"?>
> > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> > >         layout="absolute"
> > >         applicationComplete="_initJS()"
> > >         creationComplete="_initApp()">
> > >         <mx:Script>
> > >                 <![CDATA[
> > >                         import flash.utils.getQualifiedClassName;
> > >                         import flash.external.ExternalInterface;
> > >                         private var __swfName:String;
> > >                         private function _initJS():void
> > >                         {
> > >                                 __swfName =
> getQualifiedClassName(this);
> > >                                 if (ExternalInterface.available)
> > >                                 {
> > >
> ExternalInterface.marshallExceptions = true;
> > >                         try
> > >                         {
> > >                                 ExternalInterface.call("initializedOk",
> __swfName);
> > >                                 }
> > >                                 catch(e:Error){}
> > >                                 }
> > >                         }
> > >                         private function _initApp():void{}
> > >                 ]]>
> > >         </mx:Script>
> > > </mx:Application>
> >
> > > Just empty except for the ExternalInterface logic. When i try to embed
> > > either of these... page renders sloooooooooow
> > > But if i grab a swf from anywhere else (and of any size), the embed is
> > > lightning fast as expected....
> > > So what does that actually mean?????..... i will try to find out.
> >
> > > Cheers
> > > Doug
> >
> > > On Feb 17, 9:28 am, VocalPlayboy <[email protected]> wrote:
> >
> > > > Hey Vince,
> >
> > > > Ok good call with the manager idea but i still don't think it will
> > > > make a difference, the delay comes from the actual js embed, as if
> > > > it's waiting for each swf to load maybe (i don't know).
> > > > If i try the same code locally it still takes just as long and if i
> > > > swap out my flex component swfs for normal swfs (so no flex
> framework)
> > > > or need for an rsl it still takes the same amount of time.
> >
> > > > It would be good to see some other examples of multi swf embedding
> > > > techniques.
> >
> > > > Cheers
> > > > Doug
> >
> > > > On Feb 16, 6:50 pm, Vincent Polite <[email protected]>
> > > > wrote:
> >
> > > > > Hey Vocal, I took a brief look at your page.  I haven't looked at
> the actual
> > > > > SWFObject code, because generally speaking, if it's implemented
> correctly
> > > > > it's usually not the problem.
> >
> > > > > Using the Net Panel tool in Firebug, I was able to note that the
> number of
> > > > > connections being farmed out to your server, DNS lookups contribute
> to the
> > > > > lions share of delay for your page loading.  Using this link (maybe
> > > > > outdated) as reference, it notes that there is a default max # of
> > > > > connections allowed from the same page by Firefox.  I'm assuming
> that other
> > > > > browsers may have this limitation as well to make it slightly less
> trivial
> > > > > for a single browser to bring a web server to it's knees?
> >
> > > > >
> http://groups.google.com/group/firebug/browse_thread/thread/04d1a83b9...
> >
> > > > > I looked at your demo page, it didn't seem to hang for me, just
> took a bit
> > > > > using FF3.5 on a PC.  Using IE8 on the same PC, I got similar
> performance
> > > > > characteristics.  At first blush, it would seem like your server is
> the
> > > > > limiting factor, but maybe I'm wrong about that.
> >
> > > > > ----
> >
> > > > > 15 minutes later.
> >
> > > > > Took a gander at your code.  You actually do something very similar
> to some
> > > > > work I did to deal with a random number of SWFObjects on a page in
> terms of
> > > > > pushing elements into an array and what not.  You might want to
> consider
> > > > > abstracting these for loops you have into something called a
> > > > > SWFObjectManager class and instead of passing around the objects
> themselves
> > > > > which if you're not passing by reference might be more CPU work
> than not,
> > > > > that you just pass the element names around and only perform the
> operations
> > > > > as needed.  You would need to test out which is more efficient
> though.
> >
> > > > > SWFObjectManager.register("nameofDiv", "pathtoSWF", otherparams);
> > > > > SWFObjectManager.register("...","...",otherparams);
> >
> > > > > if you use a lightweight framework like jQuery you could even tag
> your divs
> > > > > with something like class="swfobject" and then use a .each()
> selector to
> > > > > grab all the swfobjects on your page and then just instantiate your
> > > > > swfobjects based on the meta data on your page.
> >
> > > > > i.e. <div id="foo" class="swfobject" >Alt Content</div>
> >
> > > > > Then your JS would be potentially reduced quite a bit:
> >
> > > > > $(document).ready(function() {
> > > > >      $(".swfobject").each(function() {
> > > > >           divId = $(this).id;
> > > > >           swfName = divId+".swf";
> > > > >           properties = {data:swfName, width:100, height: 100};
> > > > >           parameters = {menu: false};
> > > > >           swfobject.createSWF(properties, paramters, divId);
> > > > >      }
> >
> > > > > }
> >
> > > > > It does appear that you are reusing the global arrays for some
> reason, so
> > > > > for maintainabilities sake, you might consider upgrading your
> arrays to a
> > > > > type of SWFObjectManager class and make your calls a bit more
> compact.
> >
> > > > > i.e. your SWFObjectManager class would use a loop like the one
> above to
> > > > > naturally grab all the divs of class swfobject and define them
> > > > > appropriately, so your inline JS gets reduced to:
> >
> > > > > $(document).ready(function() {
> > > > >      SWFObjectManager.init();
> >
> > > > > });
> >
> > > > > So sorry, stream of consciousness after Chinese New Year.  If this
> confuses
> > > > > or is off point for you, then dump this in the recycle bin.
> >
> > > > > VincentOn Tue, Feb 16, 2010 at 9:57 AM, VocalPlayboy <
> [email protected]> wrote:
> > > > > > Check out these 2 demos.
> >
> > > > > > First one the page hangs -
> > > > > >http://www.strangeloopstudios.com/swfobject_demo/
> >
> > > > > > Second one there is a slight delay but at least it loads the page
> > > > > > quicker -http://www.strangeloopstudios.com/swfobject_demo2/
> >
> > > > > > I'll also check out your app later, got to head out now, but
> thanks.
> >
> > > > > > Doug
> >
> > > > > > On Feb 16, 5:02 pm, Steve <[email protected]> wrote:
> > > > > > > Is it the size of your swfs themselves? If not, I have created
> an
> > > > > > > application that does what you want and writes the code for
> you. Just
> > > > > > > browse to your web page, drag and drop your swfs onto the page
> where
> > > > > > > you want them, set their properties, and click publish:
> >
> > > > > > >http://norrisoftenhance.ning.com/
> >
> > > > > > > The application includes a getting started tutoriaal and help.
> >
> > > > > > > Steve
> >
> > > > > > > On Feb 16, 9:38 am, VocalPlayboy <[email protected]>
> wrote:
> >
> > > > > > > > Hi All,
> >
> > > > > > > > I'm building a modular video application with a bunch of Flex
> > > > > > > > components and part of the requirement is to use javascript
> as a
> > > > > > > > controller to communicate between my data model and my flex
> component
> >
> > ...
> >
> > read more ยป
>
> --
> You received this message because you are subscribed to the Google Groups
> "SWFObject" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected] <
> mailto:swfobject%[email protected]<swfobject%[email protected]>>
> .
>
> For more options, visit this group at
> http://groups.google.com/group/swfobject?hl=en.
>
>
>
> --
> Alex Harui
> Flex SDK Team
> Adobe System, Inc.
> http://blogs.adobe.com/aharui
>
> --
> You received this message because you are subscribed to the Google Groups
> "SWFObject" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<swfobject%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/swfobject?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"SWFObject" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/swfobject?hl=en.

Reply via email to