External .swf library assets

Ok, so here's what I want to do. I'm creating an application
that has optional classes that it can instantiate based on what the
needs are. These classes operate things like Session Logging
utilities, etc. These items obviously have assets that they need
available such as movieclips and buttons. For example, the Session
Logger has a sessionLog_mc clip that has a log window with buttons
and the log display. I want to be able to have my class load the
external .swf that contains the assets for the Session Logger and
then use attachMovie(), once the .swf is loaded, to attach the
sessionLog_mc from the library of the loaded external .swf file.
This does NOT seem to work at all. This seems like it has to be
possible. I don't want to be forced to put all my code into
external .swf's too. I just want some external asset .swf's (or
maybe just one large one) that I can load. Is this possible? I am
wanting to have the ability to show the progress of loading each of
these components while the application is starting up and loading
the asset files. Thanks so much!
Here is an example of what I'm trying: (the attachMovie does
NOT work at all)

Hi Andrei1
I already have a code that goes embedded in first frame of a
fla file and it works. The fla has two scenes, one called
“preloader” and the other just “scene”.
In the “preloader” scene I have this code in the
first frame:
import flash.events.ProgressEvent;
function LoadingProgress(e: ProgressEvent):void
var percent:Number = Math.floor(
(e.bytesLoaded*100)/e.bytesTotal );
t.text = ""+percent;
if(percent == 100)
play();
loaderInfo.addEventListener(ProgressEvent.PROGRESS ,
LoadingProgres);
stop();
It also has an instance of an animation movieclip in the
stage that shows the loading progress.
And in the “scene” scene it has a simple
instruction as code in the first frame:
stop();
And it also has an instance of the main movieclip on the
stage.
It works fine, but my version of a separated AS file ( using
package/class ) is not working.

Similar Messages

  • Problem with accessing external swf library items

    Hi,
    I have a really annoying problem when I try to access the library items of an external .swf file. It is something I have done many times before using the ApplicationDomain.currentDomain.getDefinition() method. In this particular exmple, however, I am trying to load a .swf file from a full web address rather than locally.
    I can load in the .swf and try to set the application domain like the following
    * Please note that I amu using bulkLoader
    var domain:ApplicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain)
    var lc:LoaderContext = new LoaderContext(false, domain);
    var path:String =  WorldManager.SITE_ROOT + swfPath;
    l.add(path, { id:"Kit", context:lc } );
    l.start();
    The file loads successfully but when I try to access the .swf library assets using the following it cannot access it
    domain.getDefinition("Shirt_B04");
    If I load the file with a relative path it works.....
    Does anyone have any ideas how I can solve this?

    In addition to David's reply, this technote may help:
    http://help.adobe.com/en_US/Dreamweaver/10.0_Using/WSc78c5058ca073340dcda9110b1f693f21-7e6 8a.html

  • Loading library assets from external .swf

    Ok, so here's what I want to do. I'm creating an application
    that has optional classes that it can instantiate based on what the
    needs are. These classes operate things like Session Logging
    utilities, etc. These items obviously have assets that they need
    available such as movieclips and buttons. For example, the Session
    Logger has a sessionLog_mc clip that has a log window with buttons
    and the log display. I want to be able to have my class load the
    external .swf that contains the assets for the Session Logger and
    then use attachMovie(), once the .swf is loaded, to attach the
    sessionLog_mc from the library of the loaded external .swf file.
    This does NOT seem to work at all. This seems like it has to be
    possible. I don't want to be forced to put all my code into
    external .swf's too. I just want some external asset .swf's (or
    maybe just one large one) that I can load. Is this possible? I am
    wanting to have the ability to show the progress of loading each of
    these components while the application is starting up and loading
    the asset files. Thanks so much!
    Here is an example of what I'm trying: (the attachMovie does
    NOT work at all)

    I see now how to import and display a library class object
    using:
    var MovieClipClass:Class =
    Class(loader.contentLoaderInfo.applicationDomain.getDefinition("myLibraryAsset"))
    var movieClip:Sprite = new MovieClipClass();
    addChild(movieClip)
    But this seems to only work for SWF's published for AS3 Flash
    Player 9.
    I need to do the same for SWF's published with AS2 Flash
    Player 7.
    Any ideas?

  • Debugging in "strict mode" while using external library assets

    Hi everyone. A new ActionScript-3 user here with a question on strict mode.
       I have multiple Flash pages which use the same art assets. To support modularity and possibly decrease total download time, I have implemented this by placing the shared assets into the library of a shared .swf file (the other .swf files all load this shared .swf file). The shared .swf contains ActionScript routines to place instances of the assets onto the stage and to perform other common functionality.
       A drawback to this strategy is that, correct me if I'm wrong, "strict mode" can not be used to debug calls to functions which exist in external .swf files. That is, if the parent .swf makes a call to a function which is defined within an externally loaded .swf, that function call will be reported as an error in strict-mode because Flash is unaware of the contents of an external .swf at compile time (though it is aware at run-time.)
       My understanding is that shared code can be compiled under strict-mode if the shared code exists purely as an external .as file, not as an external .swf file. However, again please correct me if I'm wrong, art assets which are shared at run-time must exist in an external .swf file. Therefore, by my understanding, if run-time shared assets are desired, then strict mode will not properly compile the projects.
       Is my understanding correct?
       Thanks for any help,
         - Rashid

          Posting an update.
          I have since found a way to compile in strict mode a project which loads an external .swf and acesses its functions. This external swf is able to have a library of its own which is accessed in the external swf's own ActionScript.
          Unfortunately, the solution I have found increases the size of the project's compiled swf. If anyone knows of a way to solve this problem without increasing swf size, I would be quite grateful if you were to share your knowledge.
          Posted below is the solution I am aware of, which increases file size. In these steps, “main project” refers to the top-level Flash project which is attempting to load other swf's. “External project” refers to an swf which is to be loaded by the main project.
    1) Publish the external projects as swc files. “Swc” is a class file, and is to be accessed by the main project when debugging under strict mode. The .swc presumably contains information about external project's library items which are to be exported for ActionScript.
          To create an .swc file, head to “File->Publish Settings...->Flash”. Check the “Export SWC” box.
    2) In the main project, add the external projects' .swc files to the external library path. This is found in, “File->Publish Settings...->Flash->Settings->External library path”. Either individual swc files can be added here (via the SWC file button) or the name of the directory where they reside (via the Path button). Both approaches should work.
    3) Somewhere in the main project's ActionScript, the external project is likely being loaded via a line of code similar to myLoaderObject.load( myURLRequest ). For this new approach, it is now necessary to make use of the second parameter to load(), the loader context. Here's the new line of code:
    myLoaderObject.load( myURLRequest, new LoaderContext( false, ApplicationDomain.currentDomain ) );
          If the LoaderContext parameter is NOT passed, then Flash unfortunately shall not report this as an error. Instead, you may observe strange behavior when the external swf attempts to use its exported library items.
    4) If the main project's code refers to the external project's class by name, then that class will need to be “import”ed into the main project's code. Without this, the compiler will complain about not recognizing the class.
    5) In the main project, edit  “File->Publish Settings...->Flash->Settings->Source path”.  Add the path to the external project's .as class file. Without this, the main project shall give a run-time error of not being able to find the external class.
       This final step, 5, is what increases the size of the main project's swf. I have a project with a few nested .swf loads, and the main project's swf increased by about 10Kb when using this solution.
          This does not seem proper. That is, one would desire the sizes of the final swf's to remain unchanged regardless of the level of compile-time error reporting. If my interpretation of an .swc class file is correct, then it seems logical to presume that step 5 above should not even be necessary, because the class information is given to the compiler/debugger through the .swc.
       Anyone know what I am doing wrong, or otherwise how to get around this problem?
       Thanks bunches.

  • Loading library movie symbol from external swf

    Hi, I have a Flex/Air Application and I want this application
    to load in an external SWF and display a particular asset from the
    SWF library (just like attachMovie in AS2). I dont want to embed
    the SWF into the Air application. For the life of me I can't find
    any tangible info on how to do this. My second problem is that the
    assets sit in an SWF published for AS2 (is that an issue?). All
    content resides locally.
    Can anyone help or point me in the right direction?

    I see now how to import and display a library class object
    using:
    var MovieClipClass:Class =
    Class(loader.contentLoaderInfo.applicationDomain.getDefinition("myLibraryAsset"))
    var movieClip:Sprite = new MovieClipClass();
    addChild(movieClip)
    But this seems to only work for SWF's published for AS3 Flash
    Player 9.
    I need to do the same for SWF's published with AS2 Flash
    Player 7.
    Any ideas?

  • Accessing External swf's library items

    Hi,
    I am Using AS2 having a Main swf in which i am loading
    external swf (I want to access the loaded swf 's library item in
    the main swf is it possible), means i want to attach a movieClip
    from the second swf, to the first is it possible.

    Thanks kglad. It seems that we are bumping up against the
    limitations of Flash for building complex applications (and not for
    the first time). I come from the Java world, where doing something
    like this would be a no-brainer. Claus Wahlers has developed an
    AS3 class to
    solve this very problem, but unfortunately we are restricted to
    AS2 at the moment.
    Still, I'm surprised that no one else here has encountered
    this issue. For instance, someone who was writing a Flash video
    game that loads a new set of assets after each level cleared would
    need some way to do this.

  • Design/gallery website - loading external SWF asset on splash page

    Hello all,
    This forum has been such a help with my website, i've found the answers to hundereds of questions but I've hit a bit of a brick wall and I wonder if anyone can help me.
    I have recently built a website http://www.intivision.co.uk/ using illustrator/flash/flash catalyst. It's still a work in progress and I'm happy with the gallery pages and general functionality but I'm having major issues with my splash/load screen and a few other niggles.
    The animation on the front page is a looping photo gallery i created in flash (as a .SWF) and imported into Catalyst. It is designed to play (and loop) indefinately after 2seconds of loading the title page. Half the time I access the site the animation does not load at all and just shows a blank screen and my logo. It will appear once the page is refreshed. A very bad first impression.
    I have a feeling this is because the SWF is externally loading the asset (which is only 350kb). Is there a solution or a way to imbed this animation so the entire project won't 'play' until this intro is loaded?
    Thanks - Tom
    ps Any other comments would be greatly appreciated

    Thanks for taking your time! Much appreciated.
    I like not complicated :-)  So it is now loading from the start - stretching over the whole timeline. How do I controll the visibility during the "HOME" = that is invisible?
    This is the code I use to load the external swf:
    var Xpos:Number=0;
    var Ypos:Number=0;
    var swf:MovieClip;
    var loader:Loader=new Loader();
    var defaultSWF:URLRequest=new URLRequest("main_movie_241x700.swf");
    loader.load(defaultSWF);
    loader.x=Xpos;
    loader.x=Ypos;
    addChild(loader);

  • Loading from library conflicts with loading external swf

    I'm very new to ActionScript, so this might be incredibly basic. However, I've Googled and read myself into a coma and I'm not finding a solution.
    I have a movie with 6 navigation buttons.  Four of them load external .swf slideshows, and they work fine - as each file loads, the previous one clears the stage, etc.  The other button that I currently have set up is loading, from the library, an image.  The problem I'm having is that the slideshows replace each other on the stage - they're not stacking, they're replacing - but when the user selects the button that loads the image, the image overlays the last-selected slideshow.  If the user selects the image first, the image is visible when two of the external files transition.  Because of that 6th button, which is not yet even started, it's not desirable to me to simply set up the single image as another external file; if it's at all possible, I need to be able to pull from a library file when I build that last button.
    What I'd like to do - because there is no logical order that the buttons should be selected in - is figure out how to tell every button to remove the image file on click.  I've tried using this in the four buttons that link to the slideshows, to deal with the image (that's the one called quoteImage):
         if(myLoader != null && contains(quoteImage)){
            myLoader.removeChild(quoteImage);
    which has the advantage of not giving me any errors, but doesn't actually fix my problem.  I've tried many, many other things, and I'm just really stumped on what exactly I need to do to make this work the way I want it to.  Based on the fact that the books and online resources I've been using don't really cover this specific example, I suspect it might be an incredibly idiot thing to do, but I'd really like it to work this way if that's possible.
    The code as it stands, with the global variables and the first two buttons (the next three are identical to the second button and the sixth button doesn't exist) looks like this:
    var myLoader:Loader=new Loader(); 
    var quoteImage:Bitmap;
    stop();
    // Loads quoteImage from library
    btnQuotes.addEventListener(MouseEvent.CLICK, showquote);
    function showquote(event:MouseEvent):void {
    var myBitmapDataObject:myBitmapData = new myBitmapData(500, 350);
    var quoteImage:Bitmap = new Bitmap(myBitmapDataObject);
    quoteImage.x=150;
    quoteImage.y=180;
    addChild(quoteImage);
    // Loads industrial.swf from external file
    btnIndustrial.addEventListener(MouseEvent.CLICK, showindustrialcontent);
    function showindustrialcontent(event:MouseEvent):void {
    var myURL:URLRequest=new URLRequest("industrial.swf");
    myLoader.x=150;
    myLoader.y=180;
    myLoader.load(myURL);
    addChild(myLoader);
    Help is very much appreciated.

    I see now how to import and display a library class object
    using:
    var MovieClipClass:Class =
    Class(loader.contentLoaderInfo.applicationDomain.getDefinition("myLibraryAsset"))
    var movieClip:Sprite = new MovieClipClass();
    addChild(movieClip)
    But this seems to only work for SWF's published for AS3 Flash
    Player 9.
    I need to do the same for SWF's published with AS2 Flash
    Player 7.
    Any ideas?

  • What is or isn't possible on iOS?  (Not having Loader, loadBytes(), external swfs, etc)

    My basic question is:  "What are the classes which we should not use for iOS using the packager."
    I have been trying for a few days trying to get a simple Flash app to run on the iPad.  A very simple app (with sound!) with just 2 classes works fine (Performance is a whole other issue.  We will get to that).  But if I try anything else, all I get is a white/black screen on the iPad.  So it would be really nice to know what classes, functions, etc we CANNOT use for the Packager.
    I have fairly simple app (not as simple as 2 classes) which loads some art assets via URLRequest/Loader, puts them on the stage.  Fairly common standard practice in AS3.
    I've read about not able to load an external file using the Packager.  So to fix the situation of loading assets, I have looked into the [embed] tag, which seems to work.  I hope the blogger doesn't mind, but this page is an excellent source on what works and doesn't work with the [embed] tag in it's various flavors:  http://www.richardleggett.co.uk/blog/index.php/2010/03/08/flash_builder_and_flash_pro_asse t_workflows.  For example, AS3 in a swf is stripped out from an external swf using [embed].
    The best way to load an external swf file for iOS seems to be using [embed] with "application/octet-stream" and load the swf through ByteArray (Option #4 in the link above).  This works great on the PC.  HOWEVER, on iPad, it fails.  The [embed] tag works on the iPad with the other ways, so my guess is that loadBytes() does not work.  Is this true Adobe/Flash guys?  Can you confirm this?
    My initial question is "why is this not allowed on iOS?".  If it is because of the fact that it uses a Loader, can it be changed so it's not using a Loader to construct a MovieClip?  I have a ByteArray with the raw swf/MovieClip data.  Why can't I construct a MovieClip from it without going through Loader?
    This loadBytes() failure seems to be the only thing preventing me from using the normal pipeline of Flash development in loading external assets.  If there are other ways people have found, please share!
    Now on to performance.  Adobe, can you post some examples/samples of code which runs at decent performance?  Like a "tech demo" of what is possible using the Packager running on iPad/iPhone.  That would be extremely helpful for everyone.  I have done a lot of the optimizing suggestions on various sites and pages ( and by Adobe http://www.adobe.com/devnet/flash/articles/optimize_content_ios.html), but I am not seeing the 30 fps performance that is MORE than possible on iPhone/iPad.  Displaying and moving around Bitmaps (I don't use any vector graphics) should be blazing fast.  Quake runs on iPad without any problems and that code is 10 years old.  Moore's law dictates that drawing Bitmaps using CPU should be faster than a 3D engine written 10 years ago...  I am trying out the new iOS 4.2 which is supposed to be "significantly" better, but I am still stuck on loadBytes().
    So at this point, I am blocked on loadBytes() and my performance for a simple app which draws a few Bitmaps and MovieClips is terrible.  I am hopeful some people out there have figured out some solution (there are lots of clever people out there) and I will stumble on to something.  But being forced to go native Objective-C seems to be my only option at this point.
    In summary, here are the questions I would like to ask the Adobe/Flash group for some more help/information/advise:
    - Why is Loader not allowed on iOS?  Is it a technical limitation of the hardware/os/Flash?  Will it never be supported?  What is the future of this class on iOS?
    - Why is loadBytes() not allowed on iOS?  I have the raw embedded data in memory.  I don't need to make a remote call so security should not be an issue.  Can I create a MovieClip without using Loader?
    - Why is AS3 stripped from the timeline when a Symbol is retrieved using [embed]?  Maybe this is the same reason loadBytes() fails, but if I could use [embed] and get a copy of the Symbol, that is what I need.  (There are issues with the mx.core.MovieClipLoaderAsset/Asset, but it is better than being blocked by loadBytes())
    - What are some apps you guys have written that we can use to compare PC vs iOS?  Again, a "tech demo" or sample code of what you as experts in Packager for iOS have done which runs at decent framerate (30+fps) would be of tremendous help.  If the Adobe/Flash group hasn't gotten the current Packager for iOS to handle more than 50+ 2D Bitmaps on screen running at 30+fps, that would be good to know.  Please let us know what the experts and owners of your software are capable of getting the most throughput using the Packager.  I'd hate to sound a bit fed up/angry, but I think you are wasting a lot of people's time and energy with a piece of software that, to me, seems like it was a bit early to release.  Flash can do some great things.  If it can do it on iOS, even better.  But PROVE it to us that it's possible, before having your customers run into barriers imposed on us by trial and error.
    Thanks.

    I have hardly ever seen a post here from someone at Adobe, so you may need to be patient.
    Read this article, and get its associated demo files, to see some good performing tech demos:
    http://www.adobe.com/devnet/flash/articles/optimize_content_ios.html
    Back to your main point, loaders are working, what isn't working for you is accessing of things in the library of a successfully loaded swf, that have been set to Export for ActionScript. That means that the swf you have loaded has an ActionScript Class, to represent the library symbol. iOS Flash apps are native ARM code, and don't include the virtual machines that a browser plugin has, and so it's not able to interpret ActionScript. That may be why it would fail.
    Now, I can think of at least a couple of reasons why you might want to have external swfs with elements that you want to reuse in the main swf. One would be if you're intending to make a lot of them, like say if you wanted to have an Asteroids game and the ability to use artwork from a set of different swfs. Another reason might be if you want to skin your interface, by taking specific elements from the loaded swf and using them in the main swf. That way you could have artists preparing those swfs for you, and you just include them in your package, and load the one you want.
    There is a way to do either of those things. The second one can be done by having the item as a named symbol on the stage of the loaded swf. With a to-be-loaded swf named "inner.swf", that has a movieclip on its stage named "mc1", this script in the main swf would load that external swf and use its symbol on the main swf's stage, without having to make the inner swf's symbol use ActionScript:
    var req:URLRequest = new URLRequest("inner.swf");
    var ldr:Loader = new Loader();
    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,loaded);
    ldr.load(req);
    function loaded(e:Event) {
    var mc:MovieClip = e.target.content as MovieClip;
    var innermc:* = mc.mc1;
    innermc.x = 50;
    innermc.y = 50;
    addChild(innermc);
    For the other case, you can take the item off the stage of the loaded swf and draw it into a bitmapdata, and then make as many bitmaps from that as you like. Here's the above example, only it adds the original movieclip to the main swf stage, and also creates a bitmap that looks the same:
    var req:URLRequest = new URLRequest("inner.swf");
    var ldr:Loader = new Loader();
    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,loaded);
    ldr.load(req);
    function loaded(e:Event) {
    var mc:MovieClip = e.target.content as MovieClip;
    var innermc:* = mc.mc1;
    innermc.x = 50;
    innermc.y = 50;
    addChild(innermc);
    var bmd:BitmapData = new BitmapData(innermc.width,innermc.height);
    bmd.draw(innermc);
    var bm:Bitmap = new Bitmap(bmd);
    bm.x = 150;
    bm.y = 150;
    addChild(bm);
    So, the thing to learn is that a native ARM code application does not have an ActionScript interpreter in it, and if you need to do something that normally requires interpreting ActionScript, find another way to do it.

  • Differing behavior loading external swfs between Linux and Windows

    I have a swf that loads several different swfs that implement the same basic class, some of these external
    swfs also import different resources from library swfs, such as font, video, and graphic assets.
    This seems to work perfectly well on both windows and Linux with using the font and graphic assets in
    the flash player (debug v 10r32), everything works as I'd expect.  I am added everything into the main swf's
    appdomain when using the loader (with loadercontext, etc).
    When I am loading the video asset class in the external swfs, it works fine on both systems for the first swf
    loaded that uses the video class.  On windows, whenever the second swf using the video library loads up, it
    gives a #1065 Reference error pointing to one of the variables used in the video asset swf.  It runs fine on Linux.
    I've tried playing around with the different AppDomain settings to no avail.  I am stumped as to why it would
    function perfectly well in Linux, but fail on Windows.  Any pointers as to where to look next?
    Thanks for any and all help,
    RP.

    In this case, it appears to be differing versions of the flexsdk that was being used to compile the application.
    Windows was using the default tarball from the adobe site,
    Linux was using a more up to date version from svn.
    I updated the svn snapshot, recompiled, set the Windows box to use it, and the error messages have disappeared.
    I can still crash the flashplayer doing other things, but it's more or less working exactly as expected now.
    RP.

  • Exporting library assets to frame 1 causes delay

    I'm fairly new to Actionscript 3, just trying to puzzle something out.
    I have several small movie clips saved in the library of myCS4 Flash.fla file, I want to make them available to dynamically add to the display list as children, based on the button clicks of the viewer. I can get it all to work fine via Symbol Properties > Linkage > Export for Actionscript.
    BUT - When the movie clips are set to "export for actionscript" from the  Library, playback seems to hang on frame 1 until all of these  exported assets have downloaded. The big problem is that I have an ultra-simple but totally custom preloader/progress animation coded in a loop in the second and third frames, which kicks out to frame 4 and continues playback as soon as the download is complete.
    Because of this, the preloader has essentially become useless - because all that can be seen is several seconds of empty stage, until the vast majority of the bulky assets have downloaded. Then the preloader flashes onstage for just an instant, and disappears because the content is already up.
    So, my questions are:
    A)  Is there a SIMPLE alternate method to load these library assets in such a way that it doesn't cause this major lag on frame 1?
    B)  Failing that, I suspect I may have to retool my preloader to run as an ENTER_FRAME event in frame 1.  Is this worth the effort (can this potentially resolve the lag issue and allow for a meaningful preload progress animation, despite the lag from the asset export?)
    Any advice, thoughts, ideas (sample code?) would be greatly appreciated!!
    Thanks in advance,
    </a>
    **Edit follows**
    OK, so after a little more research, I have basically answered this question for myself. I'm updating the post for the benefit of others who may find themselves in my shoes somewhere down the road.
    The solution (as far as I can see) is to pretty much just avoid using the "Export for Actionscript" option for exporting assets to the timeline, as much as possible. Maybe it's fine for a few small assets, but not the best choice for large stuff, which in my case was the lions' share of the content!!
    Or at least don't use the default setting of exporting to frame one!!  This will likely foul up ANY preloader, because essentially Flash player will not display any of the content on frame one until ALL of the content on that frame has fully downloaded - You'll be stuck staring at an empty stage for ages, then when the preloader finally does show up on the stage and run, it will zip by in an instant while (probably) doing its job properly, but it's really only updating on the load progress of the balance of the SWF file.
    The info I found suggested one easy method of making the assets available to Actionscript -- simply just place all of the required library assets into some unseen frame in the timeline, shortly AFTER your preloader runs.  Then Flash Player will load them after the preloader has done its thing, and they will be available to be accessed by Actionscript later in the timeline when you really need them.
    Also FYI -- I also tried changing the export settings to have Flash export the assets in question in frame four instead of frame one, with the unfortunate and unexpected result that my published SWF began skipping playback directly to frame four, which also effectively killed my preloader (which was running in frames two and three.) This glitch remained, even after reverting the export setting back to export the assets in frame one!!  It seems like my .FLA file was irreversibly altered (contaminated??) by changing the export frame setting?!?  Yikes!!
    Luckily I had an earlier version saved under a different file name, it was relatively easy to go back to that version and bring it up to date.
    Anyway - that's all for now. Hope this info can help someone else....
    </a>

    See edit at bottom of original post....

  • How can I get a preloader to launch a main (external) swf file, and have the main file remove the preloader once it's fully loaded?

    Using Flash MX, ActionScript 2:
    I’ve been struggling for several weeks, trying to get a preloader to work on a large (~80 MB) photo portfolio file (using the method where the preloader is on frame 1 of the file, and when loading is completed, it jumps to the content).  I’ve done countless tutorials, and none seem to work on my presentation.  I even tried downloading a trial version of CS4 so I could export every one of the file’s library movie clips and images so that they load on Frame 2 (a feature MX doesn’t have).  It takes about 20 seconds for the .exe to load from a CD, and no matter which preloader construction I use, it always seems to appear in the last few seconds before the movie loads completely.  During the initial wait time, there’s no indication that anything is happening:  no hourglass on the mouse, and not even a blank screen. This is only true for the first time that the file is loaded from the CD; on subsequent loads, the file must already be in RAM, because it loads within a few seconds. 
    I decided that I’m going to try and make the file which the user clicks on (one named Windows_Portfolio.exe or another called Mac_Portfolio.hqx) the preloader so that it would be tiny, and would load instantly.  I want that file to launch the external huge portfolio file (renamed files.swf), keep track of its loading progress, and cycle through a slideshow (10 thumbnail images that transition into each other over 100 frames) proportionally, based upon the percentage of files.swf that had been loaded.
    I assume that there should be a loadMovie() or a loadMovieNum() command on the preloader’s timeline to launch files.swf, and that the initial code of files.swf should have some sort of this._parent._visible=false or other way of deleting the preloader on level0.  Can anyone explain the steps to me, or direct me to a good Flash MX tutorial that explains how to launch another external swf from a preloader .exe, keep track of its load progress, and delete the preloader .exe once the external swf had been loaded?
    Also, I’ve read that, using this construction on a CD, every file has to be in the same place, and that I can’t nest files.swf in a folder named “files,” and reference it with files/files.swf.  Is this true?
    Thanks for any assistance you can offer.

    If you know JavaScript (ECMA Script) then you might be able to get it done applying a for loop and a random function
    to the for loop if you know how to get a page-loaded request into JavaScript.
    But an easier solution, if you know ActionScript 3.0, and if your SWF's don't need to be recoded and can load into a "container" SWF would be to create a master FLA file that loads your SWF's in a random fashion using Math.random() as a multiplier, though you won't see much variation if you only have 2-3 SWF's to load--if you had more than that then you would begin to benefit from the random function's capabilities.  In ActionScript 3.0 use the load() method along with addChild() to load the SWF and add it to the stage.  You will be able to search for specifics on how to code the FLA properly by using Flash's Adobe Help tool and also using an internet search.
    -markerline
    P.S. Once you have the master FLA coded you can Publish it to an SWF and an HTML and if the container/master SWF needs to be in a page with other content you can simply copy and paste the object and embed tags for the container SWF from the published HTML into any place on your master HTML that you need it to reside.  You can then use CSS to control placement of the SWF object if it is in a div tag.

  • FAQ: How do I load an external SWF file into a parent SWF file?

    A ton of Flash users visit Adobe’s we site every month wondering  about how to load an external SWF file from within another SWF.
    Adobe's own TechNote on the subject attempts to answer the basic question, along with some common follow-up questions, including:
    How do I load more than one SWF?
    How do I load a SWF into a specific location in the display list?
    How do I resize the loaded SWF?
    How do I set its X and Y location?
    Here are some additional resources that elaborate on loading content and on working with the display list:
    Sample files for the above TechNote. A set of 3 FLA and 3 corresponding SWF files, including a parent SWF and 2 SWFs that the parent loads.
    Help > AS3 Developer’s Guide > Loading an external SWF file
    Help > AS3 Developer’s Guide > Loading display content dynamically
    Loading multiple external SWFs within a main SWF – CreativeCow.net forums
    Video tutorial: ActionScript 101 – Episode 6: Adding named objects to the Stage. By Doug Winnie. An example of how to add the loaded external asset to the Stage and modify its location or other properties.
    Video tutorial: Preloading in ActionScript 3.0.  By Lee Brimelow. A slightly more complicated example, showing how to  make the parent SWF display information about the progress of loading  the external SWF.
    Tutorial: Loading and unloading SWFs - FlashAndMath.com
    This article provides several examples of how to communicate between a parent SWF file and the loaded SWF:
    SWF to SWF Communcation via ActionScript 3.0 (by kglad)

    quote:
    Originally posted by:
    NedWebs
    You now seem to want to get rid of the swf once it has loaded
    and played itself thru. To do that you would need to have something
    in the swf itself that triggers its removal in its last frame. The
    following might work...
    MovieClip(this.parent).removeChild(this);
    Unfortunately I couldn't get this to work. I placed it on the
    last frame of the SWF to be called - is that right?
    I am not sure I am doing it correctly...

  • External .swf runtime linkage .pngs AS3

    Flash can compress .png files like Photoshop can compress
    .jpg files better than any other tool hands down.
    I have 77 .png files that are 1.8 .megs on my c: drive after
    I imported them and setting the file compression under the "File
    > Publish Settings" to 75% for jpg and published the .swf with
    all the .png on the stage the file size is 350K that's about 20% of
    the original file size of the .pngs downloaded file by file with 77
    separate request.
    I can create linkage in the shared .swf and test the movie
    with code in the shared .swf to add the movieclip holders for each
    .png to the stage but when I load the shared .swf into the main
    .swf Flash acts like it can't create the classes based on the
    linkage I setup or that the MovieClip linkage doesn't exist.
    I tried a test to have the shared .swf with all the .pngs and
    linked movieclips to add the assets to it's own stage and it works
    fine but that means a lot of my code and logic is included in the
    shared .swf that the designers need to add .pngs to. It's
    unfortunate AS3 sucks but I'm just about done with the project if I
    knew what a battle AS3 was going to be I would have stayed with AS2
    my next projet will be AS2 no question non at all. Anyway I setup
    "class" linkage identifier for each .png with a movieclip holder
    for each image. The 20% of the size for the pngs and one request
    vs. 77 separate request makes it worth the extra effort of
    importing the images, creating a holder movieclip with linkage but
    the main .swf that loads the shared .swf with all the assets and
    linkage can't see or create the assets like the shared .swf can
    when I test it.
    We need to have the main .swf get a handle of the linked .png
    assets and place them in the main .swf to load the assets to
    different parts of the main .swf. It's cute that the shared .swf
    can add the linked assets to it's own stage but not too useful.
    Also the way we deploy we cannot roll out a new release/build to
    update the .pngs but we can upload a new .swf to the asset server
    so the .pngs need to be in a separate .swf. I can get the shared
    MovieClip to add the linked assets to it's own stage when testing
    and when loading my problem is the main .swf that loads the shared
    .swf cannot create instances of the classes that are exported for
    runtime sharing using linkage.
    If it is possible I would like to know how the heck you get a
    handle on a linked asset in an externally loaded .swf. Preferably
    without creating my own prototyped insane class consisting of mega
    libraries of external .as files. Just a way to reference MovieClips
    holding pngs that have linkage and are setup for runtime sharing.
    It really shouldn't be this hard it's a simple task in AS2. I'm not
    looking for a coding competition or some wild class to do the job I
    want a few lines of code to create an instance of a class then
    reference to the linkage/MovieClip holding the .png to addChild it
    into a target movieclip.

    I solved it I'm loading 77 embedded assets in an external
    .swf that compresses 77 .png images without loosing quality it
    works great.

  • Is it possible to Load External SWF files into Flex Mobile projects?

    Hi Guys,
    I'm trying to load an external asset in this cse (a SWF file) into my flex project (Apple IOS IPAD), don't get any luck. Can any one suggest a solution ?

    In Apple's words, "No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple's Documented APIs and built-in interpreter(s)".
    Hence external swfs cannot be loaded in iOS.

Maybe you are looking for