Dynamically loading VIs on RT target in development mode

I am trying to cut down on memory usage in my RT application, and one of the methods I am exploring is replacing some of the larger subVIs with VI Server Call by Reference nodes. My problem is, I want to be able to debug the VIs in question when running in development mode, and it is my understanding that I can't debug a VI called dynamically. If so, I'd like to be able to switch between calling by reference (when compiled as an executable) and including as a subVI (when running in development mode).
I realize I could just throw an App.Kind property node on the block diagram with a case structure containing the subvi for "development mode" and the Call by Reference node for "Run-Time Engine", but my understanding is that the subvi will still be loaded into memory when the calling VI is called (by virtue of placing it in the block diagram), even if that case is never executed. Please feel free to enlighten me if I am incorrect about this!
If I am wrong about debugging dynamic VI calls--if it is possible to probe/highlight execution on a VI running by reference with the VI Server on an RT target--then I can skip the above issues and just call the VI dynamically all the time. However, I am then faced with the additional problem: how to I call a VI by reference on a remote target if the VI in question is not stored on the target's hard drive? When I compile the startup.rtexe, I can set the VI in question to "Always Include" and set the destination to within startup.rtexe, so I know the path to specify for the Call by Reference node. However, when running in development mode, where do I point the reference? The VI is saved on my Host PC. I assume when I deploy the main RT app in development mode, that the VI is then stored in memory on the RT target. So, in the latter case, what path can I use?
[I apologize for including so many questions in this post--hopefully you can sort it out and help me find a solution! Thanks]

First of all, you can debug a VI called using a Call by Reference node. One trick is to programatically open the front panel before you do the call by reference. In addition, you can place a breakpoint in the diagram to force the block diagram open. 
Second, dynamic calls can cut down on the amount of memory used at one time, but it doesn't come for free. Because the VI isn't loaded into memory until a reference to it is opened a large Vi can impose potentially significant delays while loading into memory.
Mike...
Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion
"... after all, He's not a tame lion..."
Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

Similar Messages

  • Remote debugging an executable with dynamically loaded subpanel VIs

    All,
    A colleague of mine is attempting to perform remote debugging of an executable he has inherited. It includes subpanels that show dynamically loaded VIs. When connecting with the remote debugger, the main executable shows fine, but the dynamically loaded VIs are not showing their front panels. They appear ok on the remote PC where the executable is running, but they don't appear on his laptop from where he is running the debugger.
    I don't have access to LabVIEW currently, and he cannot get this to work, so I thought I'd ask the community this generic question:
    "Is it possible to remotely debug a LabVIEW executable with subpanels that show dynamically loaded subVIs?"
    Technically he can see and probe the block diagram of the main executable, but the subpanels are blank where the dynamcally loaded subVI front panel should show, making it impossible to interact with the program.
    Thoric (CLA, CLED, CTD and LabVIEW Champion)

    Thanks Josh. Does this issue have a CAR number I can tag?
    Thoric (CLA, CLED, CTD and LabVIEW Champion)

  • Executable does not open dynmanically loaded vis

    I have an ATE that is in vi form and works fine in this manner. It runs tests that are chosen by the user but the tests are not subvi's with in the program, they are called dynmanically by a vi that locates, opens the vi being called and closes when comlete. I tried to create an executable for the ATE, including the dynamically loaded vis, but when I try to run it, the test in progress does not appear or execute. What could I possibly be forgetting?

    You may be forgetting to tell the App Builder not to remove the front panels of your dynamic VIs. Otherwise, you may also be looking for those VIs at an incorrect path. When the App is built, the VIs are included in something very much like a LabVIEW Library (LLB). Depending on how you build the path to your dynamic VIs, when the App is built, it could be broken. I always call a dynamic with another VI that will ALWAYS be in the same folder. That way the calling (or reference opening) VI can examine its own path, strip one level, and build the name of the dynamic. It will work the same way in development or compiled executable form.
    Alliance Members like us do this stuff every day. Contact us if you could use some more extensive help and support.
    Daniel L. Press
    PrimeTest Corp.
    www.primetest.com

  • Can't find my dynamically loaded VI path

    Hi Folks,
    I wrote a small VI to aid with file paths used for dynamically loaded VIs. It has worked well up until this point, when I tried to use it in a larger project. I can't seem to figure out what's wrong here - I was under the impression that as long as the (called) VI was included in the build, that it should be available from \built.exe\...
    In terms of directory structure, the caller VI is at:
    C:\Projects\LabVIEW\ABES v6.0.1\toplevel_602.vi
    The called VI is in:
    C:\Projects\LabVIEW\ABES v6.0.1\subvis\GUI\preferences\GUI_preferences.vi
    Caller:
    The 'AutoPath' VI:
    Info received when trying to call subvi from BUILT exe:
    Finally, project structure (auto-populating directories) and build spec's:
    What is it that I'm not getting here?
    Thanks for reading,
    Jamie
    v2009 devel. w/RT

    The first example assumes two things:
    There's a folder that has all the plugins.
    The actual plugin VI is included in the build (e.g. by putting it in the Always Included section, as shown below), so it's also placed inside the EXE.
    If this is done, then the "plugins folder" VI shown in my example and the actual plugin VIs keep their relative positions inside the EXE, which is the case the original poster had. In this case, as well as in my second example, you don't have to do anything - LV will automatically place the VI in the correct place INSIDE the EXE.
    I didn't look at your code, but if you're not including the plugin inside the EXE itself, this can become more complicated, because you have to manage all the paths and the dependencies. I suggest you try to avoid doing this unless you must have the ability to add plugins after building the EXE.
    If you do need, try searching around for info on plugin architectures. I believe there's some info in the LV wiki.
    Try to take over the world!

  • Dynamically load a VI by library reference

    We are very excited by the introduction of project libraries in LV8 and what it means for project management and building multiple custom distributions using libraries of dynamically called VIs from within a single project.  We now have our VIs arranged by VI "type" in the directory structure and by logical "function" with the project libraries that make up the project.  It sure wold be nice if we could dynamically load VIs from the library reference rather than trying to keep up with the actual paths.  I can get a reference to the library using and invoke node and "open.library" with a path wired in.  Is there any way to use this library reference to do an "open vi reference" to a VI within that library?

    Hello Lee,
    This invoke node returns a reference to the libray, with this you can browse throught the library just like a tree control. It is usefull to open the .lvlib file with a text editor to see what 'Type string' options you have. If you get to the right VI use the 'VI Reference' property from the 'Library Item'-class, this will get you a reference to the VI which you can open, edit, save or whatever VI-server offers you.
    Good luck
    Ton
    PS I'm using in this in a tool to duplicate the .lvproj structue into the hard-drive, I'm not fully done but getting there!
    PS This screenshot was made with Starware
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!
    Attachments:
    Example_BD.png ‏2 KB

  • Dynamically Loading VI using DLL

    Hi all,
    In Labview, I have made a GUI and a library for interfacing to a device. I have compiled this to an .exe and it all work well.
    I haved compiled these exposed VIs into a DLL using LV2012 and written a small C++ program that is linked to my DLL. The problem I am having is that when I run my "begin" function (it calls some dynamically loaded VIs), I get Error 7 Path not found. Now, I imagine that this is something to do with either me not including the dynamic VIs when I compile the DLL (which I am sure I have done) or, the paths somehow being changed. When I load my VI, I use a relative path constant e.g. "UserCommands\Device1\Device1CommandFactory.vi" that gets converted to an absolute path.
    What do I need to do in order to get the DLL to load the VI properly?
    Thanks in advance

    I'm not trying to load a front panel VI dynamically. I load a "server" vi that interfaces with the device. I also dynamically load my device class. I do this because, the DLL should be able to interface with 2 different devices.
    I've added the error source as an output of my begin vi and I can see that the error occurs when trying to load my device class. It's in german sorry
    Get LV Class Default Value.vi<APPEND>
    <b>Vollstõndige Aufrufkette:</b>
         Get LV Class Default Value.vi
         myDevice_Interface.lvlib:LoadDeviceFromAbsolutePath.vi
         myDevice_Interface.lvlib:LoadDevice.vi
         myDevice_Interface.lvlib:begin.vi
         myDevice_Interface.lvlib:begin.vi.ProxyCaller
    <b>Klasse wurde versucht, hier zu laden:</b>
    C:\Users\myname\Desktop\myDevice_Interface_DLL_Example\myDeviceInterface.dll\myDevice Interface\Devices\myDevice1\myDevice1.lvclass
    I have included the class in the source data tab when I compile the DLL. I do specify the path to find the class as Devices\myDevice1\myDevice1.lvclass. Where should it be looking?

  • Nic teaming - what is dynamic load balancing

    When set up nic teaming in Windows  2012 I have the option of selecting "Address Hash", "Hyper-V Port", or "Dynamic" for the load balancing mode. The technet documentation explains "Address Hash" and "Hyper-V
    Port" but there is nothing about "Dynamic". Is there anywhere I can find a description of what the "Dynamic" option provides?

    Microsoft's official recommendation is to use Dynamic load balancing in most configurations.
    Section 3.3 of
    the NIC Teaming Deployment Guide explains what Dynamic is.  Section 3.4 suggests when to use Dynamic load balancing, and when to use other modes.
    I suggest reading the Guide from start to finish.  I learn new things every time I look at it.

  • Configuring dynamically loaded VI's search directory for both 64 and 32bit

    Background:
    I have an application that has been developed, built in LV2012 32bit.  It needs to run on a 32bit and 64bit machine (Win7, I understand the application itself will only ever be 32bit, but it needs to run in both environments).  The application dynamically loads a bunch of VI's which are raw vi's on disk (think just copy directory of files over from developer machine to the target machine that already has a exe running -- and just a copy, not a build of any sort).  All of these dyanamically loaded vi's at some point reference vi.lib, so I have a few things I need to do to the application to get it to work
    a) within the .ini file for the running exe viSearchPath=......C:\Program Files (x86)\National Instruments\LabVIEW 2012\<<bunch of directories>>\*
    b) within the VI object cache directory, I have a lvDistPath.txt file that includes C:\Program Files (x86)\National Instruments\LabVIEW 2012
    This works just fine for when I deploy these files and run the application on a 64bit version of Win7.  However, when I try to run the application on a 32bit version of Win7, it breaks -- LabVIEW is installed in C:\Program Files\.... (no (x86)).
    I am stuck with the dynamic loading architecture we have, and I can't start making changes to my code because it's not my code that is specifying where to find the files -- it's LabVIEW's internal searching algorithm.
    What can I do (short of managing two separate .ini & .txt configuration files, one set each for x86 and 64bit and managing two separate installers) to get around this problem?

    It sounds like you really don't have a problem with a 32 bit app vs. a 64 bit app.  It sounds like a problem with file paths being different on a 32 bit app on 32 bit windows vs. a 32 bit app on 64 bit windows.
    Two things you could do.
    1.  (Not sure this would work.)  Put 2 paths in the search directory, one for c:\program files path for 32 bit windows, and one for c:\program files (x86) for 64 bit windows.  One or the other will exist.  I don't know if something will hangup if it searches the other path that doesn't exist.
    2.  Since you are dynamically loading the VI's, you should specify the path when you are dynamically loading them rather than having LV search for them.  There is a function called Get System Info in the File I/O >> File Constants palette that will return the path to the Program Files folder for you environment so that you can build on that to get to your dynamic VI path.

  • Anyway to have JDeveloper dynamically load BC4J components in memory?

    We are dealing with a large BC4J based application that contains large amount of application modules. So far, 300 application modules and total 4000 BC4J objects have been created. The size of the application still keeps growing daily... may up to twenty times than what we are having right now.
    While the application size growing, some unusual problem comes out. The biggest problem is that it makes JDeveloper very sluggish. It takes 15 minutes to just open JDeveloper and may need a few minutes to open the application module editor. (FYI: in our team, most developers have 1G memory and 1.8G CPU or up.) This is probably still OK for right now, but it will become a big problem later when the project size grows.
    When we analysis the project structure, we know that most of time, developer does not need to load all the application modules. For example, we have a core package that contains about 30 application modules. This core package needs to be shared and should be loaded. But, the other nine packages contain about 30 application modules each do not need to be loaded into memory at the same time in most cases. Since BC4J is XML based, we could not find a way to just partially load those application modules, especially when there’s cross references between them.
    When we check the project.jpr file, looks like all BC4J objects are referenced there. We have 40K lines in our project.jpr file now. When open JDeveloper, we believe JDeveloper will try to load all referenced BC4J XML content into memory. This consumes 500M memory and makes the overall performance very sluggish. The situation may become even worse when the project size keeps growing. For example, we cannot have 5000M (5G) memory in a development machine for 3000 application modules.
    We do know that by checking out the "ScanSource Paths to Determins Project Contents" in the Input Paths of Project Settings, we can short the JDeveloper’s open time, but this will not give BC4J relationship information and some other useful information… Not a practical solution.
    So, any idea to make JDeveloper dynamically loaded BC4J based on need?
    We’ve tried a few ways. One is to partition the application into different project and import the core one into the other projects. Only open the project in workspace when need. But this is not officially documented by Oracle and we are not sure whether it is possible/correct or not. Another thought is to remove the NOT-CURRENTLY-USED package from the project. But JDeveloper only support file level remove.
    Any help on this dilemma will be highly appreciated.
    Thanks,
    Charles

    The package is the unit of loading in the IDE for ADF business components.
    To edit components, they must belong to the project.
    To refer to components in a read-only way, they can be imported. This allows other editable or read-only components to refer to them without allowing the imported components to be edited.
    Both editable and imported components need to be loaded in memory to use them, so you can save memory at design time by creating projects that leave out as many packages as possible.
    Is there a way we can get your existing project in house to study its design time performance?

  • Spry Tabbed panels + Progressive Enhancement and Dynamic Loading of Content With Spry

    Is there any way to combine tabbed panels together with "Progressive Enhancement and Dynamic Loading of Content With Spry"?
    Visit: http://labs.adobe.com/technologies/spry/articles/best_practices/progressive_enhancement.ht ml#updatecontent
    And click on the "Using Spry.Utils.updateContent()"
    The 3rd example shows how to use a fade transition whenever the content changes.
    I already have tabbed panels. My menu contains buttons (on tabs) and my Content div contains the panels.
    Tabs code;
    <ul class="TabbedPanelsTabGroup">
              <li class="TabbedPanelsTab">
                   <table class="Button"  >
                        <tr>
                        <td style="padding-right:0px" title ="Home">
                        <a href="javascript:TabbedPanels1.showPanel(1);" title="Home" style="background-image:url(/Buttons/Home.png);width:172px;height:75px;display:block;"><br/></a>
                        </td>
                        </tr>
                   </table>
              </li>
    etc
    etc
    etc
    and the panel code:
    <div class="TabbedPanelsContent" id="Home">
         CONTENT
    </div>
    I hoped i can use the example code from the link into my tabbed panels.
    I thought this code:
    onclick="FadeAndUpdateContent('event', 'data/AquoThonFrag.html'); return false;"
    could be added to the tab code like this:
    <a href="javascript:TabbedPanels1.showPanel(1);" onclick="FadeAndUpdateContent('event', 'data/AquoThonFrag.html'); return false;" title="Home" style="background-image:url(/Buttons/Home.png);width:172px;height:75px;display:block;"><br/></a>
    But the content doesnt fade...
    I know i need to change the header etc.
    The following is from the link:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Aquo Events</title>
    <script src="../../../includes/SpryEffects.js" type="text/javascript"></script>
    <script src="../../../includes/SpryData.js" type="text/javascript"></script>
    <script type="text/javascript">
    <!--
    function FadeAndUpdateContent(ele, url)
    try {
         Spry.Effect.DoFade(ele,{ duration: 500, from: 100, to: 0, finish: function() {
              Spry.Utils.updateContent(ele, url, function() {
                        Spry.Effect.DoFade(ele,{ duration: 500, from: 0, to: 100 });
    }catch(e){ alert(e); }
    -->
    </script>
    <style type="text/css">
    /* IE HACK to prevent bad rendering when fading. */
    #event { background-color: white; }
    </style>
    </head>
    So i changed my header etc, put the SpryEffects.js and SpryData.js into position and nothing changed...
    Is there a way to keep my tabbed panel (or change as less as possible) and let
    A. The fade work
    B. The loading work.
    The problem now is that it loads all pages instead of only the home. Therefore i wanted this Progressive Enhancement.
    And the fading part is just because its nice...

    It doesnt show in the post but off course i changed this link;
    "data/AquoThonFrag.html"
    into;
    "javascript:TabbedPanels1.showPanel(1);"
    I must say i dont know if this even works...

  • Dynamically Load Thumbnails To Horizontal Movieclip?

    I'd like to dynamically load thumbnails into a horizontal movieclip at the bottom of an image gallery to then allow me to load an image by clicking the thumbnails. I found a tutorial to help me load the thumbnails to the stage but I am not sure how to load them into the thumbs movieclip. Here is the code I am using:
    var imageLoader:Loader;
    var xml:XML;
    var xmlList:XMLList;
    var xmlLoader:URLLoader = new URLLoader();
    xmlLoader.load(new URLRequest("xml/murals.xml"));
    xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
    function xmlLoaded(event:Event):void
        xml = XML(event.target.data);
        xmlList = xml.children();
        for(var i:int = 0; i < xmlList.length(); i++)
            imageLoader = new Loader();
            imageLoader.load(new URLRequest(xmlList[i].attribute("thumb")));
            imageLoader.x = i * 175 + 25;     // <----- Also, I don't seem to understand how to space the thumbnails using this code.
            imageLoader.y = 5;
            addChild(imageLoader);
    Thanks in advance!
    -Dan

    I wasn't sure if I should make a new discussion for this or not so I'm just going to post it here.
    Alright. I finally found a tutorial that works for what I am trying to do. The thumbs load on a grid and when I click on the thumb they load in the loader. Now I am having trouble removing them. The tutorial has the remove function on the loaded large image so when you click that it removes itself. I would like so that when you click on the a thumb the current image will unload and the thumb that is clicked on will load but can't figure out how to get it to do that. I figured I'd just add a CLICK listener for the "removeFull" function to the "callFull" function but I think it cancels itself out.
    Here is the code I am using: (the code to load and unload is toward the bottom)
    stop();
    var columns:Number = 2;
    var my_x:Number = 25;
    var my_y:Number = 75;
    var my_thumb_width:Number = 65;
    var my_thumb_height:Number = 65;
    var my_images:XMLList;
    var my_total:Number;
    var container_mc:MovieClip;
    var x_counter:Number = 0;
    var y_counter:Number = 0;
    var myXMLLoader:URLLoader = new URLLoader();
    myXMLLoader.load(new URLRequest("xml/gallery.xml"));
    myXMLLoader.addEventListener(Event.COMPLETE, processXML);
    function processXML (e:Event):void{
        var myXML:XML = new XML(e.target.data);
        my_images = myXML.IMAGE;
        my_total = my_images.length();
        createContainer();
        callThumbs();
    function createContainer():void{
        container_mc = new MovieClip();
        container_mc.x = my_x;
        container_mc.y = my_y;
        addChild(container_mc);
    //The large image loads when the thumb is clicked on.
        container_mc.addEventListener(MouseEvent.CLICK, callFull);
        container_mc.buttonMode = true;
    function callThumbs():void{
        for (var i:Number = 0; i < my_total; i++){
            var thumb_url = my_images[i].@THUMB;;
            var thumb_loader = new Loader();
            thumb_loader.load(new URLRequest(thumb_url));
            thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
            thumb_loader.name = i;
            thumb_loader.x = (my_thumb_width+25)*x_counter;
            thumb_loader.y = (my_thumb_height+25)*y_counter;
            if (x_counter+1 < columns){
                x_counter++;
            } else {
                x_counter = 0;
                y_counter++;
    function thumbLoaded(e:Event):void{
        var my_thumb:Loader = Loader(e.target.loader);
        container_mc.addChild(my_thumb);
    //This function loads the large image.
    function callFull(e:MouseEvent):void{
        var full_loader:Loader = new Loader();
        var full_url = my_images[e.target.name].@FULL;
        full_loader.load(new URLRequest(full_url));
        full_loader.contentLoaderInfo.addEventListener(Event.INIT, fullLoaded);
    //This function centers the large image in the gallery loader.
    function fullLoaded(e:Event):void{
        var my_loader:Loader = Loader(e.target.loader);
        MovieClip(parent.parent).gallery.addChild(my_loader);
        my_loader.x = (MovieClip(parent.parent).gallery.width - my_loader.width)/2;
        my_loader.y = (MovieClip(parent.parent).gallery.height - my_loader.height)/2;
    //The large image unloads when it is clicked on.
        my_loader.addEventListener(MouseEvent.CLICK,removeFull);
    //This function removes the loaded image from the gallery loader.
    function removeFull(e:MouseEvent):void{
        var my_loader:Loader = Loader (e.currentTarget);
        my_loader.unload();
        removeChild(my_loader);

  • How to dynamically load data from DB in an HTML control present in jsp

    Hi Friends,
    Can anyone help me with this problem:
    I am working on a portal application. My requirement is to dynamically load data in an HTML control present in my JSPs. The controls are combo-boxes, text-fields, list-boxes etc. . Also, the events to load the data are like On Form load, On selecting a value from the combo-box, on clicking on a text-field etc.
    If any one can help me with a code snippet, than that would be highly appreciable. If not then the approach to achieve this will also be helpful.
    Thanks and Regards,
    Gaive.

    Refer
    http://www.developer.com/db/article.php/3384201
    http://www.developer.com/db/article.php/10920_3399331_1

  • Dynamically Loading and Calling VI

    Hello,
    I took VI from examples\viserver\dynload.dll and it works. When I create VI by myself likewise in the example it doesn't work properly: VI isn't Calling, I don't see the VI. But it is loading into the memory and works. So I cannot control Dynamically Loaded VI.
    What's wrong?
    Thanks,
    Gen

    It's difficult to say what might be causing the problem without seeing your code. If you could save all your VIs into an .llb and attach it to a message here, we'll have a much better chance of helping you.
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.

  • Loading VIs dynamicall​y to a subpanel ???

    hello forum
    I built four VIs for my test application. one is for defining my test, the next is for the measurement
    itself (runtest), the third is for creation of the test report and the fourth (selection.vi)
    lets the user switch among the subvis. So far the theory.
    The VIs are doing fine as long as i execute them alone. But I have problems integrating them to one
    application.
    I tought of building a fifth file (main.vi) which contains only a subpanel and load the four Subvis dynamically
    to it. I've attached my (simplified) code. My problem is that LV causes to freeze sometimes (seems to be absolutely random).
    There must be a logically mistake I cant find. Or would you use another completely different struktur f
    or
    the dynamic loading? I orientated at the viewer.vi which is shipped with LV.
    Simon
    Attachments:
    load_to_subpanel.llb ‏124 KB

    I tried your example with LV 7.0 and 7.1 and it works great. No hang ocoured.

  • Get content of dynamically loaded movieclip

    Hey,
    After trying to no avail to get the totalframes of a dynamically loaded .swf in AS3 I've regressed to AS2.
    Now I can add the clip and get the totalframes of the content, no problem.
    THe problem is I cannot resize the content at all.
    I have no idea how to target the loaded content.
    Here's the code I'm using:
    var myXML:XML = new XML();
    var path:String;
    var mcl:MovieClipLoader = new MovieClipLoader();
    var mclm:MovieClipLoader = new MovieClipLoader();
    var mclL:Object = new Object();
    var frames:Number;
    var i:Number = 0;
    var mc:MovieClip = new MovieClip
    myXML.ignoreWhite=true;
    myXML.load("content.xml");
    holder_mc._alpha = 0;
    myXML.onLoad = function(xmlLoaded){
    menu();
    load();
    mclL.onLoadComplete = function() {
              frames = (MovieClip(holder_mc)._totalframes);
              if (frames == 1) {
                   image();
              else if (frames > 1) {
                   clip();
    load = function(){
         clearInterval(timer);
         path = myXML.firstChild.childNodes[i].childNodes[1].childNodes[0].nodeValue;
         mcl.loadClip(path, holder_mc);
         var tFiles:Number = myXML.firstChild.childNodes.length;
         if (i < tFiles){
              i++;
         else if (i == (tFiles)){
              i=0;
              load();
         mcl.addListener(mclL);     
    image = function() {     
         seconds=1000;
         holder_mc._alpha = 100;
         timer = setInterval(load, seconds);
    clip = function() {     
         holder_mc._alpha = 100;
         ftimer = setInterval(checkFrames, 100);
    checkFrames = function() {
              frame = (MovieClip(holder_mc)._currentframe);
              if (frame==(frames-1)){
                   clearInterval(ftimer);
                   load();
    menu = function(){
         var tFiles:Number = myXML.firstChild.childNodes.length;
         for (me=0; me < tFiles; me++){
         path = myXML.firstChild.childNodes[i].childNodes[1].childNodes[0].nodeValue;
         i++;
         _root.attachMovie("circle", "circle"+me, me, {_x:(me*30), _y:330});
         mclm.loadClip(path, ("circle"+me));     
    I need to resize the content both for the main holder_mc as well as for the menu elements.

    Thank you for the response.
    Unfortunately that didn't work.
    Even if I try to trace either target._width or holder_mc._width where you suggested I get 0 values.
    The only values I did manage to get was when I put the trace in the load() function but they were out of sync with the images being loaded.
    I even tried it on a simpler model:
    var myXML:XML = new XML();
    var path:String;
    var mcl:MovieClipLoader = new MovieClipLoader();
    var mclL:Object = new Object();
    var frames:Number;
    var i:Number = 0;
    var tFiles:Number;
    myXML.ignoreWhite=true;
    myXML.load("content.xml");
    myXML.onLoad = function(xmlLoaded){
    path = myXML.firstChild.childNodes[i].childNodes[1].childNodes[0].nodeValue;
    tFiles = myXML.firstChild.childNodes.length;
    loader();
    loader = function() {
         mcl.loadClip(path, holder_mc);
         mcl.addListener(mclL);
    mclL.onLoadComplete = function(target:MovieClip) {
         trace(target._width);
         trace(holder_mc._height);
    ..and I still get 0 values.

Maybe you are looking for