Skip to content

Commit

Permalink
reproducing problem
Browse files Browse the repository at this point in the history
  • Loading branch information
Donald Hutchison committed Mar 14, 2011
1 parent 6a2c503 commit 243453c
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 22 deletions.
6 changes: 5 additions & 1 deletion ant/BuildTestProject.xml
Expand Up @@ -3,7 +3,7 @@
<property file="../ant/config.properties" />
<property name="environment.FLEX_HOME" value="${environment.flex_home}"/>

<target name="all" depends="Main, ExternalSWF" >
<target name="all" depends="ExternalSWF, Main" >
<fdt.launch.application
projectname="test_load_unload"
debug = "true"
Expand All @@ -19,6 +19,8 @@
<arg line=" +configname=${FLEX_CONFIGNAME}" />
<arg line=" -static-link-runtime-shared-libraries=true" />
<arg line=" -compiler.library-path ${MIN_COMP}" />
<arg line=" -compiler.library-path ${environment.FLEX_HOME}/frameworks/libs" />
<arg line=" -debug=true" />
<arg line=" -- ../src/Main.as" />
</exec>
</target>
Expand All @@ -30,6 +32,8 @@
<arg line=" +configname=${FLEX_CONFIGNAME}" />
<arg line=" -static-link-runtime-shared-libraries=true" />
<arg line=" -compiler.library-path ${MIN_COMP}" />
<arg line=" -compiler.library-path ${environment.FLEX_HOME}/frameworks/libs" />
<arg line=" -debug=true" />
<arg line=" -- ../src/ExternalSwf.as" />
</exec>
</target>
Expand Down
19 changes: 7 additions & 12 deletions src/ExternalSwf.as
@@ -1,32 +1,27 @@
package
{
import flash.events.MouseEvent;
import com.bit101.components.PushButton;

import flash.display.DisplayObjectContainer;
import flash.display.Sprite;

/**
* (c) HuzuTech 2011
*/
public class ExternalSwf extends Sprite
public class ExternalSwf extends Sprite implements ITestInterface
{
public var testButton:PushButton;
public var testButton:TestButton;

public function ExternalSwf()
{
testButton = new PushButton();
testButton = new TestButton();
testButton.label = "Click Me!!";
addChild(testButton);

testButton.addEventListener(MouseEvent.CLICK, onClick);

}

private function onClick(event : MouseEvent) : void
public function getDisplayObjectContainer():DisplayObjectContainer
{
/*
* Put a break point on the trace call
*/
trace("test function called");
return this;
}
}
}
11 changes: 11 additions & 0 deletions src/ITestInterface.as
@@ -0,0 +1,11 @@
package
{
import flash.display.DisplayObjectContainer;
/**
* (c) HuzuTech 2011
*/
public interface ITestInterface
{
function getDisplayObjectContainer():DisplayObjectContainer;
}
}
19 changes: 10 additions & 9 deletions src/Main.as
Expand Up @@ -28,7 +28,8 @@ package
public static var UNLOADED : int = 2;
public static var LOADED_AGAIN : int = 3;

public var externalSWF : ExternalSwf;
public var externalSWF : ITestInterface;
// public var blabalbal:ExternalSwf;
private var _loader : URLLoader;
private var _loaderData : ByteArray;

Expand Down Expand Up @@ -71,14 +72,14 @@ package

private function unloadSWF() : void
{
externalSWF.addEventListener(Event.REMOVED_FROM_STAGE, onExternalRemoved);
removeChild(externalSWF);
externalSWF.getDisplayObjectContainer().addEventListener(Event.REMOVED_FROM_STAGE, onExternalRemoved);
removeChild(externalSWF.getDisplayObjectContainer());
}

private function onExternalRemoved(event : Event) : void
{
externalSWF.removeEventListener(Event.REMOVED_FROM_STAGE, onExternalRemoved);
externalSWF.loaderInfo.loader.unloadAndStop();
externalSWF.getDisplayObjectContainer().removeEventListener(Event.REMOVED_FROM_STAGE, onExternalRemoved);
externalSWF.getDisplayObjectContainer().loaderInfo.loader.unloadAndStop();
externalSWF = null;
}

Expand Down Expand Up @@ -119,18 +120,18 @@ package
var context : LoaderContext = new LoaderContext(false, applicationDomain);
var loader : Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onContentLoaded);
loader.loadBytes(_loaderData, context);
loader.loadBytes(_loaderData , context);
}

private function onContentLoaded(event : Event) : void
{
var loaderInfo : LoaderInfo = event.currentTarget as LoaderInfo;
loaderInfo.removeEventListener(Event.COMPLETE, onContentLoaded);

externalSWF = loaderInfo.content as ExternalSwf;
externalSWF = loaderInfo.content as ITestInterface;

addChild(externalSWF);
externalSWF.x = externalSWF.y = 200;
addChild(externalSWF.getDisplayObjectContainer());
externalSWF.getDisplayObjectContainer().x = externalSWF.getDisplayObjectContainer().y = 200;
}
}
}
21 changes: 21 additions & 0 deletions src/TestButton.as
@@ -0,0 +1,21 @@
package
{
import flash.events.MouseEvent;
import com.bit101.components.PushButton;

/**
* (c) HuzuTech 2011
*/
public class TestButton extends PushButton
{
public function TestButton()
{
addEventListener(MouseEvent.CLICK, onClicked);
}

private function onClicked(event : MouseEvent) : void
{
trace("test function called");
}
}
}

0 comments on commit 243453c

Please sign in to comment.