我要做的是使用2个不同的按钮加载2个不同的swf。
我想要发生的是当你点击按钮1它加载第一个swf并且按钮2加载第二个swf从舞台上移除任何其他swf。
我似乎遇到的问题是加载器。我似乎无法将图像加载到装载器而不将它们放在舞台上。当我尝试动态加载图像时,即使我正在使用它,也会通过在加载器中放置另一个来继续重新创建swf:
stage.removeChild(loader);
loader = new Loader();.
有关此信息的任何帮助或教程都会很棒。
答案 0 :(得分:1)
我会为您要加载的每个图像使用单独的Loader。这是一个如何实现它的快速示例:
*编辑:它正在切断软件包部分,请原谅我不了解stackoverflow的代码解析器。 *
`包
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
public class LoaderTest extends Sprite
{
//two loaders
private var _firstLoader:Loader = new Loader();
private var _secondLoader:Loader = new Loader();
//just assuming you already have the buttons you want setup, use these as theoretical buttons
private var _buttonOne:Sprite;
private var _buttonTwo:Sprite;
public function LoaderTest()
{
_firstLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
_secondLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
_firstLoader.load(new URLRequest("path/to/image.jpg"));
_secondLoader.load(new URLRequest("path/to/image.jpg"));
_buttonOne.addEventListener(MouseEvent.CLICK, showImage);
_buttonTwo.addEventListener(MouseEvent.CLICK, showImage);
}
private function imageLoaded(e:Event):void
{
//do something if you want
}
private function showImage(e:MouseEvent):void
{
switch(e.target)
{
case _buttonOne :
if (!contains(_firstLoader))
{
if (contains(_secondLoader))
removeChild(_secondLoader);
addChild(_firstLoader);
}
break;
case _buttonTwo :
if (!contains(_secondLoader))
{
if (contains(_firstLoader))
removeChild(_firstLoader);
addChild(_secondLoader);
}
break;
}
}
}
} `