SWF LOAD UNLOADING SWFLOADER ISSUES

Hello Everyone,
I wonder if anyone ran into this issue. I have a view stack
with 3 visual screens. One of the screen has SWFLoader placed in
with "id = contentLoader";
I have two buttons on this screen on the top: "LOAD MOVIE 1"
and "LOAD MOVIE 2".
So pretty much, user can load the movie into the SWF LOADER
via this two button navigation. Well, I am able to load the first
movie with "AUTOLOAD". But when I click for the "LOAD MOVIE 2", the
second movie does load in but then the application crashes and
closes itself.
My Questions:
How can I unload the currently loaded SWF Movie before
Loading the next one. I have searched for days for this on google
and nothing has come through.
ContentLoader.unloadandStop() doesn't work and application
still crashes.
ContentLoader.source = ""; doesn't work, app still crashes
ContentLoader.source = null; doesn't work, app still crashes
Any help would highly be appreciated on this, please.

Hello Everyone,
I wonder if anyone ran into this issue. I have a view stack
with 3 visual screens. One of the screen has SWFLoader placed in
with "id = contentLoader";
I have two buttons on this screen on the top: "LOAD MOVIE 1"
and "LOAD MOVIE 2".
So pretty much, user can load the movie into the SWF LOADER
via this two button navigation. Well, I am able to load the first
movie with "AUTOLOAD". But when I click for the "LOAD MOVIE 2", the
second movie does load in but then the application crashes and
closes itself.
My Questions:
How can I unload the currently loaded SWF Movie before
Loading the next one. I have searched for days for this on google
and nothing has come through.
ContentLoader.unloadandStop() doesn't work and application
still crashes.
ContentLoader.source = ""; doesn't work, app still crashes
ContentLoader.source = null; doesn't work, app still crashes
Any help would highly be appreciated on this, please.

Similar Messages

  • How make the swf loaded in swfloader component to be transparent?

    Hi,
    I use the swfloader component to load many swf file into my project,but how do I make the swf loaded in swfloader component to be transparent? Just like the swf to be set transparent in HTML!
    Thanks a lot.
    David

    Nobody can help me?

  • Load & Unload Movie Issue

    Hi Guys:
    Have 2 unable solve issues, would be much appreciated if anyone could help.
    // ISSUE 1 //
    I am experiencing an issue with Load & Unload Movie.  What happen is that I am trying to load an external SWF into a movie clip call movieContainer in my main website.  This external SWF file has timeline that perform a animation when it's loaded into the movieContainer.
    I can load and unload the movie with no problem...the issue is that after I unload the SWF and then at any point of the movie on the main website I click to load the SWF back to the stage.....the timeframe of the SWF file stay at where it get left off(when it's unloaded).  I am trying to make it play start all over again.
    I try the movieContainer.content.gotoAndPlay(1); but it doesn't do anything. Any idea how I could make this work?
    Here is my code:
    var content:Loader = new Loader();
    content.load(new URLRequest("externalSwf/content.swf"));
    loadMovieButton.addEventListener(MouseEvent.CLICK, loadMovieButtonClicked);
    function loadMovieButtonClicked(e:MouseEvent):void{
        movieContainer.addChild(content);
    // ISSUE 2 //
    In my external SWF file, I have create a loading loader at the 1st frame.  But it doesn't play all the time when I testing on the server.  It works just fine when I test locally with TEST MOVIE.  Not only it doesn't play all the time.....it suppose to play from 2nd frame of the movie after the loading is finished (I have a short animation play between frame 2 - frame 20)  Instead of playing from frame 2 to frame 20, the animation just jump straight to frame 20...which mean the user won't see the animation between frame 2 - frame 20.
    import flash.events.ProgressEvent;
    function update(e:ProgressEvent):void
    var percent:Number = Math.floor( (e.bytesLoaded*100)/e.bytesTotal );
    if(preloaderMC is MovieClip){
    preloaderMC.gotoAndStop(percent);
    //preload_txt.text = String(percent);
    if(percent == 100){
    gotoAndPlay(2);
    loaderInfo.addEventListener(ProgressEvent.PROGRESS, update);
    // Extra test for IE
    var percent:Number = Math.floor( (this.loaderInfo.bytesLoaded*100)/this.loaderInfo.bytesTotal );
    if(percent == 100){
    nextFrame();
    stop();
    Many Thanks!

    Thanks for the reply, the code I use to load the external SWF is:
    The button is within a movieClip: commercialScrollBar_mc
    The button instance name is: stackPancakeBar
    The external SWF get to load into a movieClip container call: projectDetailsContainer_mc
    var ldr:Loader = new Loader();
    ldr.load(new URLRequest("projectsCommercial/stackPancakeBar.swf"));
    commercialScrollBar_mc.stackPancakeBar.addEventListener(MouseEvent.CLICK, stackPancakeBarClicked);
    function stackPancakeBarClicked(e:MouseEvent):void{
        MovieClip(ldr.content).gotoAndPlay(1);
        projectDetailsContainer_mc.addChild(ldr);
    I was thinking does it has anything to do with the UNLOAD script I have on the external SWF file? Below are the code for removing the child.
    back_btn.addEventListener(MouseEvent.CLICK, removeProjectDetails);
    function removeProjectDetails(e:MouseEvent):void{
        this.parent.parent.removeChild(this.parent);
    Thanks Heaps, by the way, do you have any idea why the loading sequence doesn't get to play every time?  Or perhape the file size is too small?

  • Loading and Unloading of swf files in SWF Loader

    Hi all,
    I have a doubt reg. SWF Loader.
    I have created two mxml files A & B.
    A. local.mxml
    B. SwfSample.mxml
    i have two labels and a button in A file and i have set values to those labels and have a method to handle the click event of the button. In B file i have loaded this A file and accessed the labels and methods using SystemManager Component and changed the values of the A file's label and accessed data from A file to B file.
    Here comes the problem,
    I have two buttons named LoadAgain and Unload
    When i click the Unload button, the SWF Loader unloads its content by the method i handled for  the Unload button, after that i have clicked on the LoadAgain button to load the same content of A's mxml to the SWF Loader, it loads succesfully,but i was not able to access its Label or Method from the B mxml. Please help me to solve the issue.
    local.mxml
    <?xml version="1.0" encoding="utf-8"?><mx:Application 
    xmlns:mx=http://www.adobe.com/2006/mxml layout="absolute">
    <mx:Script>
        <![CDATA[
    Bindable]
        public var varOne:String = "This is a public variable";
        public function setVarOne(newText:String):void
              varOne = newText;
        ]]>
    </mx:Script>
    <mx:Label id="lblOne" text="I am here" x="28" y="88"/>
    <mx:Label text="{varOne}" x="166" y="88"/>
    <mx:Button label="Nested Button" click="setVarOne('Nested Button Pressed');" x="28" y="114"/>
    SwfSample.mxml
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application 
    xmlns:mx=http://www.adobe.com/2006/mxml layout="absolute">
        <mx:Script>
        <![CDATA[
              import mx.controls.Alert;  
              import mx.managers.SystemManager;  
              import mx.controls.Label; 
    Bindable]
              public var loadedSM:SystemManager;
              private function initNestedAppProps():void
                  loadedSM = SystemManager(myLoader.content);
              public function updateLabel():void
                  lbl.text = loadedSM.application[
    "lblOne"].text;
              public function updateNestedLabels():void
                  loadedSM.application[
    "lblOne"].text = "I was just updated" ;
                  loadedSM.application[
    "varOne"] = "I was just updated";
              public function updateNestedVarOne():void
                   local(loadedSM.application).setVarOne(
    "Updated varOne");
              public function unload():void
                   myLoader.content.loaderInfo.loader.unload();
              public function loadAgain():void
                   myLoader.load(
    "../bin-debug/local.swf");
            ]]>
         </mx:Script>
    <mx:Label id="lbl" x="72" y="47"/>
    <mx:SWFLoader id="myLoader" width="438" source="../bin-debug/local.swf" creationComplete="initNestedAppProps();" y="73" height="238" x="72" alpha="1.0"/>
    <mx:Button label="Update Label Control in Outer Application" click="updateLabel();" x="72" y="319"/>
    <mx:Button label="Update Nested Controls" click="updateNestedLabels();" x="72" y="349"/>
    <mx:Button label="Update Nested varOne" click="updateNestedVarOne();" x="72" y="379"/>
    <mx:Button label="Unload" click="unload();" x="72" y="409"/>
    <mx:Button label="Load Again" click="loadAgain();" x="72" y="439"/>
    </mx:Application>
    Thanks & regards,
    Sathish.K

    creationComplete only fires once when the SWFLoader is created.  Therefore you never reset your variables to point to the new sub-app.  On a slow network, creationComplete may fire before the sub-app loads.  It is best to use the COMPLETE event.
    Alex Harui
    Flex SDK Developer
    Adobe Systems Inc.
    Blog: http://blogs.adobe.com/aharui

  • Loading a remote SWF via SWFLoader Issue

    I have a simple flex app which loads an external XML into an
    arrayCollection using HTTPService send method. This works fine as
    both a stand-alone, or when loaded into it's parent as a LOCAL file
    via the SWFLoader tag. However, when I place this child file onto a
    remote server and try to load it into the parent which resides on
    my desktop, the ArrayCollection default resultFormat of the send
    method triggers the following runtime error (listed below). I don't
    think it's a sandbox issue because when I change result format to
    e4x, it works fine remotely. I've been hitting a wall on this for
    days now... Any insight would be greatly appreciated and thanks to
    all in advance!!!
    PARENT SWF (resides on local desktop)
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="vertical" initialize="initData()">
    <mx:Script>
    <![CDATA[
    public var baseURL:String;
    public function initSWF(swfURL:String):void {
    remote_swf.load(swfURL);
    public function initData():void
    baseURL = "
    http://blahblahblah";
    Security.allowDomain(baseURL);
    ]]>
    </mx:Script>
    <!-- WORKS when loading child swf LOCALLY -->
    <mx:Button label="Load LOCAL SWF APP"
    click="initSWF('remoteSWF.swf')"/>
    <!-- DOES NOT WORK when loading child swf REMOTELY -->
    <mx:Button label="Load REMOTE SWF APP" click="initSWF('
    http://blahblahblah/remoteSWF.swf')"/>
    <!-- LOADER -->
    <mx:SWFLoader height="100%" width="100%" id="remote_swf"
    autoLoad="false" visible="true" scaleContent="false"/>
    </mx:Application>
    CHILD SWF (resides on remote server)
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute" creationComplete="getXMLData()">
    <mx:HTTPService id="myTeams" url="
    http://blahblahblah/xml/myXML.xml"/>
    <mx:Script>
    <![CDATA[
    import mx.controls.Alert;
    import mx.rpc.events.ResultEvent;
    import mx.collections.ArrayCollection;
    public function getXMLData():void
    Alert.show(Security.sandboxType);
    myTeams.send();
    ]]>
    </mx:Script>
    <mx:Label text="THIS IS THE LOADED SWF WHICH HAS JUST
    PERFORMED A SEND ON HTTP SERVICE TO CREATE ARRAY
    COLLECTION"></mx:Label>
    </mx:Application>
    ------------ RUNTIME ERROR ---------------------------------
    ArgumentError: Error #1063: Argument count mismatch on
    Object/
    http://adobe.com/AS3/2006/builtin::hasOwnProperty().
    Expected 0, got 2.
    at mx.rpc.xml::SimpleXMLDecoder/decodeXML()
    at mx.rpc.xml::SimpleXMLDecoder/decodeXML()
    at mx.rpc.xml::SimpleXMLDecoder/decodeXML()
    at mx.rpc.http::HTTPService/
    http://www.adobe.com/2006/flex/mx/internal:rocessResult()
    at mx.rpc::AbstractInvoker/
    http://www.adobe.com/2006/flex/mx/internal::resultHandler()
    at mx.rpc::Responder/result()
    at mx.rpc::AsyncRequest/acknowledge()
    at :irectHTTPMessageResponder/completeHandler()
    at
    flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio
    n()
    at flash.events::EventDispatcher/dispatchEvent()
    at
    flash.net::URLLoader/flash.net:URLLoader:nComplete()

    After further investigations, it appears that the problem might be, due the fact that in the remote (loaded) swf, the following is null:
    var sm:ISystemManager = ISystemManager(SystemManagerGlobals.topLevelSystemManagers[0]);
    sm.swfBridgeGroup <----- equals null
    I tried creating the swfBridgeGroup in the local (loading) swf, but the loaded one still thinks it is null.
    Any ideas?

  • SWFLoader loded swf and relative path issue

    Hi,
    Before explaining the problem, let me describe the usecase.
    I have dashboard flex application hosted on Host1.
    I have another flex application which acts as plugin to dashboard and is hosted on Host2.
    I am using proxy to load plugin into dashboard using SWFLoader. With proxy SWFLoader in dashboard thinks that the plugin is coming from same host.
    For plugin to load I specify SWFLoader source something like - source="Proxy/Host2WebappDir/plugin.swf.
    Everything is fine upto this point. plugin.swf get loads successfully without any issue.
    Now the problem -
    If plugin.swf made some request - the url path of that requrest is expected to be relative - i.e. if it make request say getIndianStates.xml, I am expecting the request should look for resource at "Proxy/Host2WebappDir/getIndianStates.xml". Instead it tries to look for getIndianStates.xml into dashboard hosting directory on Host1.
    Can this issue be resolved without making any modification in source of plugin.swf.
    Thanks in advance,
    Prithveesingh Zankat.

    I don’t know if any way to fix this without changing the URL the plugin wants to load.  Now if the plugin stores that URL in a publicly accessible variable, you might be able to access it from the main SWF and change it.  But it would be better to have the plugin detect relative paths and make sure they are relative to the SWF.  The SWFLoader component uses a LoaderUtil class to do that for SWFs it loads, but loads that don’t use SWFLoader need similar fix ups.

  • Facing problem while unloading the SWF file in SWF Loader

    Facing problem with SWF Loader.
    Background:
    I've 4 SWF files (demo1.swf, demo1_skin.swf, demo2.swf and demo2_skin.swf).
    These swf files are created throgh Adobe Captivate.
    Playing demo1_skin, will play the demo1.swf with the controls at the button such as "Play", "Pause", "Stop", "Forward", "Backward" and Seekbar.
    Playing demo2_skin, will play the demo2.swf with the controls at the button such as "Play", "Pause", "Stop", "Forward", "Backward" and Seekbar.
    Scenario:
    1. Clicked on the video1 leaf of the tree. Video1.swf is getting played.
    I am able to click on the seek bar to take the video pointer to the desired position. I can drag the seek bar forward and backward also.
    2. Clicked on the video2 leaf of the tree. Video2.swf is getting played.
    I am not able to click on the seek bar to take the video pointer to the desired position. Also, I am not able to drag the pointer on the seek bar either forward or backward also.
    Play, Pause, Stop, Forward, Backward buttons on the skin works properly.
    3. If I again, click on the video1 leaf, point 1 observation is found.
    4. clicking agian, on video2 leaf, point 2 observation found.
    Please suggest.
    I tried with Loader also. But, nothing fruitful. Same result, as I am getting from SWF Loader.
    Please find the below used code.
    dp.xml
    <?xml version="1.0" encoding="utf-8"?>
    <root>
        <gallery label="All">
              <file label="video1" src="demo1_skin.swf" />
              <file label="video2" src="demo2_skin.swf" />
        </gallery>
    </root>
    Sample1.mxml
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white">
    <mx:Script>
        <![CDATA[
                  import mx.events.ListEvent;
                  private function tree_itemClick(event:ListEvent):void {
                        var t:Tree = event.currentTarget as Tree;
                        var dataObj:Object = event.itemRenderer.data;
                        swfLoader.load(null);
                        if (dataObj.hasOwnProperty("@src")) {
                            swfLoader.load(dataObj.@src);
              ]]>
    </mx:Script>
    <mx:XML id="dp" source="dp.xml" />
        <mx:HDividedBox width="100%" height="100%">
              <mx:Panel width="200" height="100%">
                  <mx:Tree id="tree" dataProvider="{dp}" labelField="@label"
                        showRoot="false" width="100%" height="100%" itemClick="tree_itemClick(event);" />
                  </mx:Panel>
                  <mx:Panel id="panel" width="100%" height="100%" backgroundColor="white">
                        <mx:SWFLoader id="swfLoader" width="100%" height="100%" />
                  </mx:Panel>
        </mx:HDividedBox>
    </mx:Application>
    log in the console
    [SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\Sample3.swf - 951,034 bytes after decompression
    Clicked on the video1 leaf of the tree
    [SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo1_skin.swf - 31,309 bytes after decompression
    this.getSWFVersion() = 7
    contentSWFFullPath = file://C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo1.swf
    [SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo1.swf - 323,414 bytes after decompression
    incrementWait = 1
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    decrementWait = 0
    Clicked on the video2 leaf of the tree
    [SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo2_skin.swf - 31,311 bytes after decompression
    [Unload SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo1.swf
    this.getSWFVersion() = 7
    contentSWFFullPath = file://C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo2.swf
    [SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo2.swf - 477,273 bytes after decompression
    incrementWait = 1
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    decrementWait = 0
    Clicked on the video1 leaf of the tree (Again)
    [SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo1_skin.swf - 31,309 bytes after decompression
    [Unload SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo2.swf
    this.getSWFVersion() = 7
    contentSWFFullPath = file://C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo1.swf
    [SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo1.swf - 323,414 bytes after decompression
    [Unload SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo2_skin.swf
    incrementWait = 1
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    decrementWait = 0
    Clicked on the video2 leaf of the tree (Again)
    [SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo2_skin.swf - 31,311 bytes after decompression
    [Unload SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo1.swf
    this.getSWFVersion() = 7
    contentSWFFullPath = file://C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo2.swf
    [SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo2.swf - 477,273 bytes after decompression
    incrementWait = 1
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    onLoad m_movie = null
    decrementWait = 0
    [Unload SWF] C:\Java_Flex_Practice\FlexPractice\Sample\bin-debug\demo1_skin.swf

    Try calling unloadAndStop() before loading a new swf.
    http://livedocs.adobe.com/flex/3/langref/mx/controls/SWFLoader.html#unloadAndStop()
    http://livedocs.adobe.com/flex/3/langref/flash/display/Loader.html#unloadAndStop()
    Note that unLoadAndStop()is FP10 only.

  • Load Unload swf

    I can load "Sample.swf" load on stage by loader class, but i can't unload "Sample.swf"
    What "X" button code?

    Main.swf code is:
    load_bt.addEventListener(MouseEvent.CLICK,onLoadbt);
    function onLoadbt(e:MouseEvent):void
              var ldr:Loader=new Loader();
              ldr.load(new URLRequest("Sample.swf"));
              addChild(ldr);
    Sample.swf code is:
    close_bt.addEventListener(MouseEvent.CLICK,onClosed);
    function onClosed(e:MouseEvent):void
              Loader(this.parent).unloadAndStop();
    p.s. pleas mark helpful/correct responses.

  • Loading/Unloading a .swf that adds event listeners to the Stage

    Hi all,
    Disclaimer
    Apologies if I suck so bad at using forum search that the answer to this is on page 1 somewhere; I tried...
    Question
    I am loading and unloading a .swf to which I do not have source code access. This .swf places several event listeners on the stage, as far as I can tell. When the .swf is unloaded, the event listeners placed upon the stage still seem to be in effect. Using unloadAndStop doesn't seem to do it, and I have to target Flash Player 9, anyway, so can't really use it. Is there any other way I can keep this external .swf from holding onto my main movie's stage?
    Additional info
    All eventListeners and references being set by my code are removed.
    I've managed a little contact with the author of the .swf:
    I've requested he provide a dispose() method I can call to get all the listeners removed, and send an updated .swf.
    He's suggested that I should be able to avoid the problem by loading into a unique ApplicationDomain. I'm not terribly familiar with this, but have given it a try without much success. Is this a valid solution - can I really protect my 'stage' by properly using ApplicationDomains - or do I need to persist in trying to get a public dispose() method built in?
    Thanks in advance!
    Cheers, John

    thanks for reply sir
    sir actually, i have not any problem with loading any file but i need to go back to intro.swf file when i click on clsbtn of main.swf, i want unload the main.swf file and panel.swf file
    actually i did was, i have intro.swf file and there is button by clicking load main.swf file (where is timeline controling butons) and in the main file automatically load panel.swf file ( where is all animation)
    its all play gud , no problem
    but my problem is there is a clsbtn in main.swf file and when i click on that button everything should be unload and it should return on the previous position in intro.swf
    i hope u understand what i am trying to say

  • Load/ Unload external .swf

    ----------------------------------------
    vita | web | design | illustration
    "main" here
    I try to have external .swf on this "main" part of my flash
    design automatically using load actionscript.
    I have 3 different sets of actionscripts for load/unload.
    But, the problem is when I click vita or other menu on the
    top after loading "main" external .swf, they are overlapped.
    How can I unload the external .swf from the automatically
    loaded .swf?
    (As I know, there are mostly buttons to click on loading
    external .swf. But for my design, I want it loads automatically.)
    Thanks in advance for suggestions. Please let me know if my
    description/question is not clear to answer.

    Are you using AS2 or AS3. The approach is completely
    different for both.

  • How to Load/Unload external SWF

    Hey all, I'm in a desperate struggle to meet a deadline for college coursework. I am unable to UNLOAD an external SWF file that I have put inside another SWF file. The problem that is occurring is, although it loads successfully, when I attempt to navigate to another page after viewing the external SWF, I expect it to close as it goes on to another page however, it remains in place. If i then go back on to the page that it is loading from, it will start to keep adding more and more SWF's. The print screens should explain it easier... Below i'll post the code that I'm using currently. The external SWF I am trying to load/unload is an interactive hangman game (whether it being interactive has an effect I do not know), but any and all help with this would be seriously appreciated!
    The code currently being used is:
    var _swfLoader:Loader;
    var _swfContent:MovieClip;
    loadSWF("Real Hangman.swf");
    function loadSWF(path:String):void {
       var _req:URLRequest = new URLRequest();
       _req.url = path;
       _swfLoader = new Loader();
       setupListeners(_swfLoader.contentLoaderInfo);
       _swfLoader.load(_req);
    function setupListeners(dispatcher:IEventDispatcher):void {
       dispatcher.addEventListener(Event.COMPLETE, addSWF);
       dispatcher.addEventListener(ProgressEvent.PROGRESS, preloadSWF);
    function preloadSWF(event:ProgressEvent):void {
       var _perc:int = (event.bytesLoaded / event.bytesTotal) * 100;
       // swfPreloader.percentTF.text = _perc + "%";
    function addSWF(event:Event):void {
       event.target.removeEventListener(Event.COMPLETE, addSWF);
       event.target.removeEventListener(ProgressEvent.PROGRESS, preloadSWF);
       _swfContent = event.target.content;
       _swfContent.addEventListener("close", unloadSWF);
       addChild(_swfContent);
    function unloadSWF(event:Event):void {
       _swfLoader.unloadAndStop();
    removeChild(_swfContent);
       _swfContent = null;
    This printscreen is showing what it looks like in the Flash view (plain background and external SWF loads when this SWF is published)
    What it looks like when loaded as published swf
    Picture of the external SWF working inside the other SWF
    Picture of it not being able to unload when i navigate to another page!
    Finally, a picture of it doubling up when i proceed to go on the 'game' page again, it just keeps loading the SWF's rather than unloading them!

    for example, file1 consits of two buttons, and also considered as main page. As i click on these two buttons , it will lead me go to open the external file2.swf, and file3.swf respectively. (file2.swf and file3.swf could have other navigation buttons, however, i am just simplify here).
    the code you provided is working fine. but i want to totally remove/unlink the orginal file (file1.swf) when i click on either buttons which could lead me to other page (file1.swf or file2.swf).
    Besides that, in file2.swf and file3.swf could have another "back" button to turn it back to the main page (file1.swf). When the user click on that back button, the file2.swf will unloaded...and file1.swf will be called back again...
    can it  be done?
    so sorry if my poor explanation makes you confuse..
    thank you.

  • Tab navigator and swf loader issue

    I have written two flex applications. Each of the
    applications contains a tab navigator control. The direct children
    of this tab navigator are canvases, sized to max.
    i.e.
    <mx:Canvas label="WhateverLabel" width="100%"
    height="100%">
    <!--whatever additional children here-->
    </mx:Canvas>
    Everything works fine, the navigator, all its children and
    grandchildren Application does exaclty as it should ... untill I
    load it into another application using swf loader.
    Our main application is a menu driven app that loads
    individual swf files based on user selection. When either one of
    these programs (using the tab navigator described above) is loaded,
    I get a White Bar across the top of the screen, sized as the Tab
    navigator width.
    the white bar goes away as soon as the user interacts with
    any control, but it still is there on application load. Here is a
    picture of what I am speaking about.
    http://members.cox.net/dragon.magik/whitebar.jpg
    You can see the menu atop the screen as the base application.
    You can then see the panel right beneath it, that is the main panel
    of the application i am having problems with. The white bar, as you
    see, is as wide as my tab navigator. The TN labels are positioned
    correctly, but I don't know why I am getting the white bar. I am
    having the exact same problem with tab navigators in two different
    applications I load into this one control panel. Any help would be
    greatly appreciated. Thanks in advance.

    There is an unsolved bug in adobe.
    You have to solve it manually overriding the function:
    package
         import mx.containers.TabNavigator;
         public class TabNavigatorFixed extends TabNavigator
             public function TabNavigatorFixed()
                 super();
             override protected function  commitSelectedIndex(newIndex:int):void
                 super.commitSelectedIndex(newIndex);
                 if(tabBar.numChildren > 0){
                     // Select the corresponding Tab in the Tab Bar (this  fixes a bug in Flex)
                     tabBar.selectedIndex = newIndex;

  • A swf loader bug?

    It looks like I may have found a bug in the swf loader.  Before I submit this problem I want to make sure there is not something I'm missing in my code. I wrote this class to load a tutorial when the user first launches a sub application in a project I'm working on. This is a simplified version of the class that exemplifies the problem.  The same methods I use to launch the swf from within an mxml work just fine, but when I externalize the process in this class, I can hear the tutorial, but I get no visual.  Is this a bug or am I missing something?
    Here is the tutorial launcher class:
    package proj.fuego.utils
         import flash.events.Event;
         import mx.controls.SWFLoader;
         import mx.flash.UIMovieClip;
         public class TutPlayerSimple extends UIMovieClip
              private var gutLoader:SWFLoader;
              public function TutPlayerSimple(fullTutorialPath:String)
                 gutLoader = new SWFLoader();
                 gutLoader.addEventListener(Event.COMPLETE, addToStage);
                 gutLoader.load(fullTutorialPath + ".swf");
                 //addChild(gutLoader);
              private function addToStage(evt:Event):void
                 addChild(evt.target.content);
    This is my mxml:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="1024" minHeight="768" applicationComplete="application1_applicationCompleteHandler(event)">
         <mx:Script>
              <![CDATA[
                 import mx.controls.SWFLoader;
                 import mx.events.FlexEvent;
                 import proj.fuego.utils.TutPlayerSimple;
                 private var fullTutorialPath:String = "ll_tut";
                 private var tutPlayer:TutPlayerSimple;
                 protected function application1_applicationCompleteHandler(event:FlexEvent):void
                      // TODO Auto-generated method stub
                      var context:LoaderContext = new LoaderContext();
                      tutPlayer = new TutPlayerSimple(fullTutorialPath);
                      //context.checkPolicyFile = true;
                      //gutLoader.loaderContext = context;
                      trace("Loading Tut:", fullTutorialPath + ".swf");
                      addChild(tutPlayer);
              ]]>
         </mx:Script>
    </mx:Application>

    That didn't look right.  You'll need to addChild SWFLoader.  Not sure what will happen if you just try to add its content.  There might also be issues putting Flex components inside a UIMovieCip.
    Alex Harui
    Flex SDK Developer
    Adobe Systems Inc.
    Blog: http://blogs.adobe.com/aharui

  • Listening for UncaughtErrorEvents from SubApp loaded by SWFLoader

    I can't seem to get my uncaughtErrorEvents listener to fire when attached to the loader.uncaughtErrorEvents  or loaded content's loaderInfo.uncaughtErrorEvents when loading a swf via SWFLoader.
    I have a main Flex Application ('A.swf') loading a SubApplication  (defined in' B.swf') via a SWFLoader and I need to listen for  UncaughtErrorEvent from the SubApplication. I'm not able to get my event  listeners to be called when I throw an error from within the SubApp  ('B.swf').
    After reading the asDoc for UncaughtErrorEvent and  UncaughtErrorEvents It states that the UncaughtErrorEvent should go through the normal capture, target, and bubble phases through the loaderInfo hierarchy. This doesn't seem to be the case or I'm not understanding the documentation/usage.
    I have added an event listener to A.swf's loaderInfo  (The 'outter' main app) and also to B.swf's loaderInfo (though the Docs  say not to do it here it is part of the event sequence in the capture  and bubble phase...) as well as the SWFLoader internal  FlexLoader.uncaughtErrorEvent (per Docs) like so:
    SWFLoader's internal FlexLoader uncaughtErrorEvents
    swfLoader.content.loaderInfo.loader.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorFunction );
    and the loaded SWF's loaderInfo:
    swfLoader.content.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorFunction );
    When I throw an Error from the SubApplication (B.swf). Only the 'outter' main app's (A.swf) event listener gets called. Which you expect, at first, if it is in the capture phase, but it isn't in that eventPhase at all. When debugging the eventPhase is in the EventPhase.AT_TARGET phase while being handled by A.swf's LoaderInfo, howeever the ASDoc says the Target phase should be B.swf's LoaderInfo.
    Is this a bug between Flash player and Flex where the event isn't flowing correctly as stated in the ASDoc for UncaughtErrorEvent?

    Thanks for the reply Alex.
    The Outer main swf and the SubApp swf are in different ApplicationDomains (sibilings to each other) so they should not be sharing the class that is throwing the error. I should note that these two Applications are purely based on MX components, this is important later on.
    I was originally throwing the error from a Button click handler from B.swf:
    <mx:Button label="Throw Error" click="callLater( throwUncaughtError )" />
    I was wrapping the handler function in a callLater because without it the error is not caught at all and the default flash dialog console just appears with the error. The A.swf's loaderInfo.uncaughtErrorEvents handler was not even firing unless I wrapped it a callLater.
    I realized that Flash Builder's default to link the 4.1 SDK library via Runtime shared libraries was what was causing the A.swf's loaderInfo.uncaughtErrorEvent to fire in the AT_TARGET phase when using callLater. This is because the UIComponent's callLater method queue structure is shared between the two SWFs and therefore inside a function executing off the method queue A.swf's loaderInfo IS the TARGET... explainable, but at first thought that isn't how I'd expect this to work.
    I then decided to test this out by setting the SDK library to merge into the code for both A.swf and B.swf and removing the  callLater. IT WORKS!  B.swf's (the SubApp) loaderInfo.uncaughtErrorEvents handler fires and I prevent the default (flash error console from appearing) and can stopImmediatePropagation so A.swf's loaderInfo.uncaughtErrorEvents handler doesn't fire.
    Perfect besides having to merge the SDK libraries into each swf independently.... size killer.
    In summary, using the same exact code for A.swf and B.swf:
    1. When the SDK libraries are RSL - no UncaughtErrorEvents, neither A.swf's or B.swf's, is called. Instead the default flash error console appears with no chance to handle the uncaught error.
    2. When the SDK libraries are Merged into the code - both A.swf's and B.swf's uncaughtErrorEvents  will be called, according to the asDoc documented sequence; B.swf's uncaughtErrorEvents in the AT_TARGET phase and A.swf's uncaughtErrorEvents in the BUBBLE phase.
    Moreover, if I build a pure Spark implementation everything works even when referencing the SDK libraries as RSL.
    Does this indicate a bug in the globalplayer (flash player code)'s logic for handling UncaughtErrorEvents listeners within the loaderInfo hierarchy when the Flex SDK is Shared code between the SWFs?
    OR
    Since it works in Spark, is it an issue with how the flex2.compiler.mxml.Compiler turns MX based mxml components into generated AS classes (it hooks up the inline event listeners of child UIComponentDescriptor using a generic object and the click function is specified as a STRING and has to use untyped bracket notation to lookup on the UICompoent when adding it as a listener:
    new mx.core.UIComponentDescriptor({
                  type: mx.controls.Button
                  events: {
                    click: "___B_Button1_click"
                  propertiesFactory: function():Object { return {
                    label: "Throw Error"
    Where as Spark does this correctly and generates Factory functions for setting up child UIComponents when converting Spark component mxml to AS:
    private function _B_Button1_c() : spark.components.Button
        var temp : spark.components.Button = new spark.components.Button();
        temp.label = "Throw Error";
       temp.addEventListener("click", ___B_Button1_click);
        if (!temp.document) temp.document = this;
        mx.binding.BindingManager.executeBindings(this, "temp", temp);
        return temp;
    * @private
    public function ___B_Button1_click(event:flash.events.MouseEvent):void
        throwUncaughtError()
    Sadly, moving to pure Spark would be a big hit is my project's schedule and at this point and likely isn't feasible. I have examples (with view source) built in MX for both the RSL and MERGE cases, I just don't know how to attach them here.
    Sorry for the long comments and thanks again!

  • How to get the content in embed swf file in Swf Loader on run time

    How to get the content in embed swf file in Swf Loader on run time
    [Bindable]
    [Embed(source="assets/index.swf")]
       private var SWFSRC:Class;
    <mx:SWFLoader id="_swfloader" source="{SWFSRC}" />

    Hi Flex harUI,
    Throw the error.
    Access of undefined property content

Maybe you are looking for

  • HT1296 What is the correct windows xp path to use so USB sync will function? I must have moved my folder because sync no longer works.

    I tried to organize my computer folders but must have moved a key folder for my iProducts because I can no longer sync. Does anyone know the correct windows xp path to put my documents folder in the right location so sync will function again?

  • How to uninstall Safari 4.0.3

    I've been getting a lot of problems with the newly updated Safari... hanging pages (on facebook, onion and etc... all you get is a turning wheel, no crash windows, have to force quite and start again, the second time always works). And it also genera

  • MBP sleep while connected to external monitor

    I couldn't find the answer to this anywhere: when I have the MBP connected to an external monitor in closed lid mode, is it ok to keep my screen saver/sleep settings, i.e. it'll sleep after 15 minutes of inactivity? Will it wake up as it normally wou

  • Posting not showing in correct year

    HI, I am trying to figure out why postings that have an entry date of 01/02/2012 but a posting date of 31/12/2011 and Doc Date of 31/12/2011 are not showing up in the 2011 year for the Trial Balance, but the 2012 balance when Carry Forward has not be

  • Trying to cancel account but waiting for ages on h...

    I am trying to cancel my account as I am moving in with my partner who already has BT but trying to get through to someone is impossible. When I phone up the waiting time to speak to a person is min 10 mins, time and cost I just don't have. Does anyo