22 Replies Latest reply on Aug 12, 2009 12:36 PM by Flex harUI

    swfloader doesn't load classes

    geo-bart

      Hello,

       

       

      I've made an .swf which I want to embed in Flex using SWFLoader. I've done this quite a few times now and it always worked out fine.

       

      However, the .swf I've made now uses a class ('main.as'). In turn, the class main calls two other classes ('planets.as' and 'moons.as').

       

      The swf is running properly in Flash Player, but not when it's embedded in Flex. I've been told SWFLoader doesn't load external classes. So how do I cope with this problem?

       

      I used Flash Player 10, Flex 3, IE8, AS3 CS4.

       

       

      Thanks alot,

       

      Bart Van Bossuyt

      geography and sciences teacher

        • 1. Re: swfloader doesn't load classes
          Gregory Lafrance Level 6

          What problems are you seeing? Errors, warnings, or else what wrong behavior?

          • 2. Re: swfloader doesn't load classes
            geo-bart Level 1

            Hi Greg,

             

            Thanks for the swift answer. Ths swf itself won't load (I used a temporary pink canvas background and a grey background for the swf.). Running the .swf in Flahs Player 10 produces the grey background, running it in Flex via SWFLoader doesn't - the background stays pink.

             

            No error messages, nothing...

             

            Bart

            • 3. Re: swfloader doesn't load classes
              Flex harUI Adobe Employee

              Do you get progress events?  The Event.COMPLETE?

               

              Alex Harui

              Flex SDK Developer

              Adobe Systems Inc.

              Blog: http://blogs.adobe.com/aharui

              • 4. Re: swfloader doesn't load classes
                geo-bart Level 1

                Hi Alex and thank you as well for answering so quickly,

                 

                This is the code I've been using so far:

                 

                 

                 

                 

                 

                <mx:Script>

                <![CDATA[

                 

                 

                import

                mx.managers.PopUpManager;

                import

                mx.controls.Text;

                import

                flash.display.Sprite;

                import

                mx.core.Container;

                 

                 

                ]]>

                 

                 

                </mx:Script>

                 

                 

                 

                <mx:Canvas backgroundColor="#FF00FF" verticalScrollPolicy="off" horizontalScrollPolicy="off" width="600" height="600">

                 

                <mx:SWFLoader alpha="1.0" id="swfObj" source="viewerorion.swf" width="600" height="600" y="0" x="0"/>

                 

                </mx:Canvas>

                 

                 

                 

                 

                As you can see, I haven't been using any event listeners. Should I have? And if so, how do I get an event.complete to load those .as?

                 

                 

                Thank you ever so much,

                 

                Bart

                • 5. Re: swfloader doesn't load classes
                  Flex harUI Adobe Employee

                  You don't need to in production, but to diagnose your problem, add trace statements to the SWFLoader tag such as:

                   

                  <mx:SWFLoader progress="trace('got progress')" complete="trace('got complete');callLater(dumpContent)" ....

                   

                  And add a dumpContent method to your script block that does something like this:

                   

                  private function dumpContent():void

                  {

                       trace(swfObj.content.width);

                       trace(swfObj.content.height);      

                       trace(swfObj.content.scaleX);

                       trace(swfObj.content.scaleY);

                  }

                  Then see what ends up in the console.

                   

                  It's past midnight for me, so I won't be looking at this thread for a while.

                   

                  Alex Harui

                  Flex SDK Developer

                  Adobe Systems Inc.

                  Blog: http://blogs.adobe.com/aharui

                  • 6. Re: swfloader doesn't load classes
                    geo-bart Level 1

                    I've inserted the scripts but Flex keeps it's lips sealed.

                    • 7. Re: swfloader doesn't load classes
                      Flex harUI Adobe Employee

                      Post the swf if you can.  Any chance your test app is called "main"?  Any classes in the swf being loaded that collide with the classes in the loading SWF will not be initialized.

                       

                      Alex Harui

                      Flex SDK Developer

                      Adobe Systems Inc.

                      Blog: http://blogs.adobe.com/aharui

                      • 8. Re: swfloader doesn't load classes
                        geo-bart Level 1

                        Alex,

                         

                        Flex now spits out some error messages:

                         

                        VerifyError: Error #1033: Cpool entry 14 is wrong type.

                        ReferenceError: Error #1065: Variable MotEd_9 is not defined.

                         

                        (I've never heard of that variable).

                         

                        Do you want the classes as well?

                         

                        Bart

                        • 9. Re: swfloader doesn't load classes
                          geo-bart Level 1

                          And it calls the document class named Lines3DCS4.

                           

                          Bart

                          • 10. Re: swfloader doesn't load classes
                            sri harsha namala Level 2

                            Hi

                             

                            When me trying to open your SWF Directly its giving me the following Error

                             

                            Any problem with your swf file or Problem with my FlashPlayer Version

                             

                            VerifyError: Error #1033: Cpool entry 14 is wrong type.

                            • 11. Re: swfloader doesn't load classes
                              Flex harUI Adobe Employee

                              The SWF requires FP10 and loads fine in FP10.  It will give you verify errors if you use FP9.

                               

                              That also means that the Flex SWF that loads it must also be written for FP10.  Add the compiler option -target-player=10 to your compiler settings.  Flash sets up its API versions for the first SWF loaded so if that content loads content requiring newer APIs those APIs are not available.  The API versions are not per-SWF.  In fact, the SWF probably doesn't get loaded because the Player sees that it is not a compatible version.

                               

                              So, when I tried loading the SWF into an FP10 SWF, it successfully loads, then I get an error in the constructor of the document class.  Many SWFs make assumptions that they are top-level and thus do not support being child swfs.  Child SWFs do not have the stage available to them at constructor time, and a few other things may be different as well.  Looks like you own the code so you can fix it as needed.

                               

                              Alex Harui

                              Flex SDK Developer

                              Adobe Systems Inc.

                              Blog: http://blogs.adobe.com/aharui

                              • 12. Re: swfloader doesn't load classes
                                geo-bart Level 1

                                Alex,

                                 

                                I used both FP 9 and 10 (also in Flex Builder). I added the code line but nothing has changed. The SWF just won't load if it contains a link to the document class. In cases where there is no document class given, the SWF does load (but the animation of course won't).

                                 

                                Bart

                                • 13. Re: swfloader doesn't load classes
                                  geo-bart Level 1

                                  I found this blog entry on Adobeted's blog http://www.onflex.org/ted/2007/11/runtime-flash-cs3flex-integration-via.php, but I'm not sure whether this will be of any help and if so, I haven't got the slightest idea how I should change the second step in order to get the three .as loaded.

                                   

                                  Bart

                                  • 14. Re: swfloader doesn't load classes
                                    Flex harUI Adobe Employee

                                    Your document class is making an assumption that the stage is there (stage.stageWidth, etc).  It won't be there at constructor time when the SWF is loaded by another SWF.  You'll have to delay working with stageWidth until the stage becomes available, maybe by listening for the next enterFrame event.  You may also really want the code to look at its parent's width if it doesn't have the stage so it will size to the SWFLoader and not the full stage.

                                     

                                    If you post your document class, folks will help you sort out what needs to change.

                                     

                                    Alex Harui

                                    Flex SDK Developer

                                    Adobe Systems Inc.

                                    Blog: http://blogs.adobe.com/aharui

                                    • 15. Re: swfloader doesn't load classes
                                      geo-bart Level 1

                                      Hi Alex,

                                       

                                      Thanks, I understand. That explains alot.

                                       

                                      The document class is called Lines3DCS4, the other two .as are in a folder called objects (as you could gather from the code).

                                       

                                      You can find those files attached.

                                       

                                      Thanks,

                                       

                                      Bart

                                      • 16. Re: swfloader doesn't load classes
                                        geo-bart Level 1

                                        Apparently the classes haven't been uploaded to the forum. They surely do have a mind of their own.

                                         

                                        Second try now.

                                        • 17. Re: swfloader doesn't load classes
                                          geo-bart Level 1

                                          As I can't upload the classes (I keep getting 'unauthorized' messages, I'm posting the code below. Hope that will claify things.

                                           

                                           

                                           

                                          package {
                                          import __AS3__.vec.Vector;

                                          import flash.display.GraphicsPathCommand;
                                          import flash.display.Sprite;
                                          import flash.display.StageAlign;
                                          import flash.display.StageScaleMode;
                                          import flash.events.Event;
                                          import objects.*;

                                          public class Lines3DCS4 extends Sprite
                                          {
                                            private var balls:Array = new Array();
                                            private var marks:Array = new Array();
                                           
                                            private var numBalls:uint = 10;
                                            private var fl:Number=400;
                                            private var vpX:Number = stage.stageWidth/2;
                                            private var vpY:Number = stage.stageHeight/2;
                                            private var commands:Vector.<int> = new Vector.<int>(50,true);
                                            private var data:Vector.<Number> = new Vector.<Number>(100,true);
                                           
                                            private var myHolder:Sprite = new Sprite();
                                            //private var myHolder:Sprite = new Sprite();
                                           
                                            public function Lines3DCS4()
                                            {
                                             init();
                                            }
                                           
                                            private function init():void
                                            {
                                             stage.align = StageAlign.TOP_LEFT;
                                             stage.scaleMode = StageScaleMode.NO_SCALE;
                                            
                                             var xArray:Array = new Array();
                                             xArray = [251,182,279,326,294,271,251, 219,385,294];
                                             var yArray:Array = new Array();
                                             yArray = [300,117,71,141,270,285,300, 459,425,270];
                                             var zArray:Array = new Array();
                                             zArray = [60,28,120,-50,80,160,60,40,60,80];
                                             for(var i:uint = 0; i < numBalls; i++)
                                             {
                                              var ball:BallCS4 = new BallCS4(10, 0);
                                              var mark:MarkCS4 = new MarkCS4(0, 0);
                                              marks.push(ball);
                                              balls.push(ball);
                                              mark.xpos = ball.xpos = 0.6*(xArray[i] - 210) ;
                                              mark.ypos = ball.ypos =  0.6*(yArray[i] - 210) ;
                                              mark.zpos = ball.zpos = 0.6*zArray[i] ;
                                              myHolder.addChild(ball);
                                              myHolder.addChild(mark);
                                             
                                             
                                             }
                                             
                                             
                                             addChild(myHolder);
                                            
                                             myHolder.x=vpX+5;
                                             myHolder.y=vpY;

                                            
                                             addEventListener(Event.ENTER_FRAME, onEnterFrame);
                                            }
                                           
                                            private function onEnterFrame(event:Event):void
                                            {
                                            
                                           
                                             var angleX:Number = (mouseY - vpY) * .00005;
                                             var angleY:Number = (mouseX - vpX) * .00005;
                                             for(var i:uint = 0; i < numBalls; i++)
                                             {
                                              var ball:BallCS4 = balls[i];
                                              rotateX(ball, angleX);
                                              rotateY(ball, angleY);
                                             
                                              var mark:BallCS4 = marks[i];
                                             
                                              rotateX(mark, angleX);
                                              rotateY(mark, angleY);
                                             
                                              doPerspective(ball);
                                              doPerspective(mark);
                                            
                                             }
                                            
                                             sortZ();
                                            
                                             commands[0] = GraphicsPathCommand.MOVE_TO;
                                             data[0] = marks[0].x; // x
                                                      data[1] = marks[0].y;
                                            
                                             for(i = 1; i < numBalls; i++)
                                             {
                                              data[2*i]=marks[i].x;
                                              data[2*i+1]=marks[i].y;
                                             
                                              commands[i] = GraphicsPathCommand.LINE_TO;
                                             
                                             }
                                            
                                             myHolder.graphics.clear();
                                             myHolder.graphics.lineStyle(0);
                                             myHolder.graphics.drawPath(commands, data);
                                            

                                            }
                                           
                                            private function rotateX(ball:BallCS4, angleX:Number):void
                                            {
                                             var cosX:Number = Math.cos(angleX);
                                             var sinX:Number = Math.sin(angleX);
                                            
                                             var y1:Number = ball.ypos * cosX - ball.zpos * sinX;
                                             var z1:Number = ball.zpos * cosX + ball.ypos * sinX;
                                            
                                             ball.ypos = y1;
                                             ball.zpos = z1;
                                            }
                                            private function rotateY(ball:BallCS4, angleY:Number):void
                                            {
                                             var cosY:Number = Math.cos(angleY);
                                             var sinY:Number = Math.sin(angleY);
                                            
                                             var x1:Number = ball.xpos * cosY - ball.zpos * sinY;
                                             var z1:Number = ball.zpos * cosY + ball.xpos * sinY;
                                            
                                             ball.xpos = x1;
                                             ball.zpos = z1;
                                            }
                                           
                                            private function doPerspective(ball:BallCS4):void
                                            {  
                                            
                                            
                                             if(ball.zpos > -fl)
                                             {
                                            
                                             var scale:Number = fl / (fl + ball.zpos);
                                             
                                              ball.scaleX = ball.scaleY = scale;
                                              ball.x =  ball.xpos*scale;
                                              ball.y =  ball.ypos*scale;
                                           
                                             
                                              }
                                             else
                                             {
                                              ball.visible = false;
                                             }
                                             
                                            
                                            }
                                            private function sortZ():void
                                            {
                                             balls.sortOn("zpos", Array.NUMERIC | Array.DESCENDING );
                                             for(var i:uint = 0; i < numBalls; i++)
                                             {
                                              var ball:BallCS4 = balls[i];
                                              myHolder.addChild(ball as Sprite);
                                             }
                                            
                                            
                                            }

                                          }
                                          }

                                          • 18. Re: swfloader doesn't load classes
                                            Flex harUI Adobe Employee

                                            The constructor calls init().  Init accesses the stage.  The stage is null when loaded by another swf until the next frame or so.

                                             

                                            You could add code that in init that does something like

                                             

                                            If (stage == null)

                                            {

                                                 addEventListener("enterFrame", initCallback);

                                                 return;

                                            }

                                             

                                            And in initCallback:

                                             

                                            removeEventListener("enterFrame", initCallback);

                                            init();

                                             

                                            However, note that the code is using stage.align and stage.scaleMode which is probably set by the main app, so you might just skip those lines if there is no stage.

                                             

                                             

                                            Alex Harui

                                            Flex SDK Developer

                                            Adobe Systems Inc.

                                            Blog: http://blogs.adobe.com/aharui

                                            • 19. Re: swfloader doesn't load classes
                                              K_G_

                                              I have the same problem, i´m trying to use a .swf in a flex application, i can see it when i´m using flex desing view, and i can play all of them directly in flash player, but when i run my flex application nothing appears.

                                              I have try all of this, but anyone change anything...::

                                               

                                              <?xml version="1.0" encoding="utf-8"?>
                                              <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" horizontalAlign="center" verticalAlign="middle" x="56" y="466">
                                              
                                                   <mx:Canvas width="992" height="796" left="0" top="0">
                                                        <mx:SWFLoader autoLoad="true" source="@Embed(source='/assets/360_1.swf')" id="tour" visible="true" width="135" height="80" x="10" y="185"/>
                                                        <mx:SWFLoader autoLoad="true" source="assets/360_1.swf" id="tour2" visible="true" width="135" height="80" x="58" y="27"/>
                                                        <mx:Image autoLoad="true" source="@Embed(source='assets/360_1.swf')" id="imageSwf" visible="true" width="135" height="80" x="27" y="520"/>
                                                        
                                                   </mx:Canvas>
                                                   
                                              </mx:Application>
                                              

                                               

                                              This .swf was generated with a program named pano2vr, and i choose that the file was for flash 9-10. I can view another flash created by other people, but not this one.

                                              I have attach the .swf.

                                              Thanks in advance.

                                              • 20. Re: swfloader doesn't load classes
                                                K_G_ Level 1

                                                I can get it... i write my flex code, i hope that it can help you...it´s some more code...

                                                 

                                                <?xml version="1.0" encoding="utf-8"?>
                                                <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" preinitialize="{loadMedia('assets/360_1.swf')}">
                                                <mx:Script>
                                                     <![CDATA[
                                                                         var urlr:String;
                                                                         var loader:Loader;
                                                                         var urlReq:URLRequest;
                                                                         var vr:MovieClip;
                                                                         
                                                                         public function loadMedia(swfPath:String):void
                                                                         {
                                                                         urlr = swfPath;
                                                                         
                                                                         loader = new Loader();
                                                                         
                                                                         //Turn the path into a urlrequest
                                                                         urlReq = new URLRequest(urlr);
                                                                         vr = new MovieClip();
                                                                         
                                                                         //Load the file at the path
                                                                         loader.load(urlReq);
                                                                         
                                                                         // call initPanorama every frame
                                                                         loader.contentLoaderInfo.addEventListener(Event.COMPLETE, initPanorama);
                                                                         loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
                                                                         
                                                                         //This makes sure the stage is clean. In my case I want to load the Pano onto a
                                                                         //empty stage.
                                                                         for(var j:int = 0; j < this.rawChildren.numChildren; j++)
                                                                         {
                                                                         this.rawChildren.removeChildAt(j);
                                                                         }
                                                                         
                                                                         // add your swf directly to the stage
                                                                         this.rawChildren.addChild(loader);
                                                                         
                                                                         }//end load
                                                                         
                                                                         
                                                                         private function initHandler(event:Event):void
                                                                         {
                                                                         // cast 'DisplayObject' to 'MovieClip'
                                                                         vr = MovieClip(loader.content);
                                                                         
                                                                         // Disable Flash 10 rendering if the container is Flash 9
                                                                         vr.isFlash10=false;
                                                                         }
                                                                         
                                                                         
                                                                         private function initPanorama(event:Event):void
                                                                         {
                                                                         // check if the panorama object is available and initialize it
                                                                         if ((vr!=null) && (vr.pano!=null))
                                                                         {
                                                                         // resize the window
                                                                         vr.pano.setWindowSize(700, 400);
                                                                         
                                                                         //This sets the pano's position on the stage. Doesn't quite work how you would expect
                                                                         //You might have to experiment with this.
                                                                         vr.pano.setWindowPos(0, 0);
                                                                         }
                                                                         }
                                                                         
                                                                         //For my own purposes I added this to reposition and resize the pano anytime the display list was updated.
                                                                         override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
                                                                         {
                                                                         super.updateDisplayList(unscaledWidth, unscaledHeight);
                                                                         
                                                                         if ((vr!=null) && (vr.pano!=null))
                                                                         {
                                                                         vr.pano.setWindowSize(this.width, this.height); // resize the window
                                                                         vr.pano.setWindowPos(this.parent.x, this.parent.y); // reposition
                                                                         }
                                                                         }
                                                                                        
                                                          ]]>
                                                     </mx:Script>
                                                     
                                                </mx:Application>

                                                 

                                                 

                                                 

                                                 

                                                 

                                                Best Regards

                                                 

                                                Pablo

                                                • 21. Re: swfloader doesn't load classes
                                                  geo-bart Level 1

                                                  Me again. As nothing seemed to do the trick, I internalized the classes.

                                                   

                                                  Frankly, I've had it with externalizing classes ;-))))).

                                                   

                                                  This solved the problem partially: the stars of the constellation are visible, the animation responds to mouse movements, depth scaling is OK...but the lines connecting the stars aren't visible. I'll post this problem also in a Flash forum. Feel free to make the comparison for yourself.

                                                   

                                                  So any suggestions how I can make the lines visible? Can they be exported for Actionscript in the same way the movieclips are?

                                                   

                                                  Thanks alot,

                                                   

                                                  Bart

                                                   

                                                   

                                                   

                                                  /////////////////////////////////////////////////////////////////////////////////:::////// /////////////////////////////////////////////////////////////////////////////////

                                                   

                                                   

                                                  import __AS3__.vec.Vector;
                                                  var balls:Array = new Array();
                                                  var marks:Array = new Array();
                                                  var numBalls:uint = 10;
                                                  var fl:Number = 400;
                                                  var vpX = 300;
                                                  var vpY = 300;
                                                  var commands:Vector.<int> = new Vector.<int>(50,true);
                                                  var data:Vector.<Number> = new Vector.<Number>(100, true);
                                                  var myHolder:Sprite = new Sprite();

                                                  function init():void{


                                                  stage.align = StageAlign.TOP_LEFT;
                                                  stage.scaleMode = StageScaleMode.NO_SCALE;

                                                  var xArray:Array = new Array();
                                                  xArray = [251,182,279,326,294,271,251,219,385,294];

                                                  var yArray:Array = new Array();
                                                  yArray = [300, 117, 71, 141,270,285,300,459,425,270];

                                                  var zArray:Array = new Array();
                                                  zArray = [60,28,120, -50, 80, 160, 60, 40,60,80];

                                                  for(var i:uint = 0;i < numBalls;i++){
                                                   
                                                    var ball:Ball = new Ball();
                                                    var mark:Mark = new Mark();
                                                    marks.push(ball);
                                                    balls.push(ball);
                                                    mark.xpos = ball.xpos = 0.6 * (xArray[i] - 210);
                                                    mark.ypos = ball.ypos = 0.6 * (yArray[i] - 210);
                                                    mark.zpos = ball.zpos = 0.6 * zArray[i];
                                                   
                                                    myHolder.addChild(ball);
                                                    myHolder.addChild(mark);
                                                   
                                                   
                                                   
                                                  }

                                                  addChild(myHolder);
                                                  myHolder.x = vpX + 5;
                                                  myHolder.y = vpY;
                                                  addEventListener(Event.ENTER_FRAME, onEnterFrame);


                                                  }


                                                  function onEnterFrame(event:Event):void
                                                  {

                                                  var angleX:Number = (mouseY - vpY) * 0.00005;
                                                  var angleY:Number = (mouseX - vpX) * 0.00005;

                                                  for (var i:uint = 0;i<numBalls;i++){
                                                   
                                                    var ball:Ball = balls[i];
                                                    rotateX(ball, angleX);
                                                    rotateY(ball, angleY);
                                                    var mark:Ball = marks[i];
                                                   
                                                    rotateX(mark, angleX);
                                                    rotateY(mark,angleY);
                                                    doPerspective(ball);
                                                    doPerspective(mark);
                                                   
                                                   
                                                  }




                                                  sortZ();
                                                  commands[0]= GraphicsPathCommand.MOVE_TO;
                                                  data[0] = marks[0].x;
                                                  data[1] = marks[0].y;



                                                  for(i=1;i<numBalls;i++){
                                                    data[2*i] = marks[i].x;
                                                    data[2*i + 1] = marks[i].y;
                                                    commands[i] = GraphicsPathCommand.LINE_TO;
                                                   
                                                   
                                                  }




                                                  myHolder.graphics.clear();
                                                  myHolder.graphics.lineStyle(2, 0x000000, 1);
                                                  myHolder.graphics.drawPath(commands, data);

                                                  }

                                                   


                                                  function rotateX(ball:Ball, angleX:Number):void{
                                                  var cosX:Number = Math.cos(angleX);
                                                  var sinX:Number = Math.sin(angleX);

                                                  var y1:Number = ball.ypos * cosX - ball.zpos * sinX;
                                                  var z1:Number = ball.zpos * cosX + ball.ypos * sinX;
                                                  ball.ypos = y1;
                                                  ball.zpos = z1;


                                                  }


                                                  function rotateY(ball:Ball, angleY:Number):void{

                                                  var cosY:Number = Math.cos(angleY);
                                                  var sinY:Number = Math.sin(angleY);
                                                  var x1:Number = ball.xpos * cosY - ball.zpos * sinY;
                                                  var z1:Number = ball.zpos * cosY + ball.xpos * sinY;
                                                  ball.xpos = x1;
                                                  ball.zpos = z1;


                                                  }

                                                   

                                                  function doPerspective(ball:Ball):void{
                                                  if(ball.zpos  > -fl){
                                                   
                                                    var scale:Number = fl/(fl + ball.zpos);
                                                    ball.scaleX = ball.scaleY = scale;
                                                    ball.x = ball.xpos* scale;
                                                    ball.y = ball.ypos * scale;
                                                   
                                                  }
                                                  else {
                                                   
                                                    ball.visible = false;
                                                   
                                                  }
                                                   
                                                   
                                                   




                                                  }

                                                   


                                                  function sortZ():void{

                                                  balls.sortOn("zpos", Array.NUMERIC | Array.DESCENDING);
                                                  for(var i:uint;i<numBalls;i++){
                                                   
                                                    var ball:Ball = balls[i];
                                                    myHolder.addChild(ball as Sprite);
                                                   
                                                  }





                                                  }


                                                  init();

                                                  • 22. Re: swfloader doesn't load classes
                                                    Flex harUI Adobe Employee

                                                    Can you start a new thread and re-state the problem?  I'm not sure why you're internalizing or externalizing classes or even sure what you mean by that.  I assume you got past getting it load and now it just doesn't render something?

                                                     

                                                    Alex Harui

                                                    Flex SDK Developer

                                                    Adobe Systems Inc.

                                                    Blog: http://blogs.adobe.com/aharui