2

我在舞台上有一个按钮,它使用 Loader 类加载外部 SWF。我希望能够在用户单击 SWF 外部(即舞台上的其他任何位置)时卸载它。

到目前为止,我只有加载 SWF 的代码......

mybutton.addEventListener(MouseEvent.CLICK, fl_LoadExternalSwf);

function fl_LoadExternalSwf(event:MouseEvent):void
{
var my_Loader:Loader = new Loader();
var my_url:URLRequest=new URLRequest("pageFlip.swf");

//These listeners detect when the file has finished loading, and if the
//correct file is loaded.
my_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoading);
my_Loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);

//The load method then loads the SWF file into the loader object.
my_Loader.load(my_url);

//This function adds the external SWF to the stage.
function finishLoading(loadEvent:Event) {
addChild(loadEvent.currentTarget.content);
}

//This function displays a message if the file is not found.
function errorHandler(errorEvent:Event):void {
trace("file missing");
}
}
4

1 回答 1

0

你可以只使用unload()Loader()

function unloadMC(myLoader:Loader, myURL:URLRequest):void {
 myLoader.unLoad(myURL);
}

unloadMC(my_Loader, my_url);

编辑

您需要一个外部接口来调用单击事件“除了” swf。首先你需要使用jQuery来实现

$(document).bind('click', function (e) {
 $('#yourSWFObject').clickOutside();
});

$('#special').bind('click', function(e) {
    e.stopPropagation();
});

点击方法。之后,您需要使用 AS3 应用 externalInterface

import flash.external.ExternalInterface;
public function clickOutside() {
 unloadMC(my_Loader, my_url);
} 
于 2012-11-24T12:33:27.457 回答