flash as3加载器问题

发布于 2024-09-10 12:49:46 字数 316 浏览 8 评论 0原文

我想做的是使用 2 个不同的按钮加载 2 个不同的 swf。

我想要发生的是,当您单击按钮 1 时,它会加载第一个 swf,按钮 2 会加载第二个 swf,并首先从舞台中删除任何其他 swf。

我似乎遇到的问题与加载程序有关。我似乎无法将图像加载到加载器中而不将它们放在舞台上。 但它仍然通过在加载器中放置另一个图像来重新创建 swf。

stage.removeChild(loader);
loader = new Loader();. 

当我尝试动态加载图像时,即使我正在使用:有关此信息的任何帮助或教程都会很棒,

What I am trying to do is load 2 different swf's using 2 different buttons.

What I want to happen is when you click on button 1 it loads the first swf and button 2 loads the second swf removing any other swf from the stage first.

The problem I seem to be running into is with the loader. I cannot seem to load the images into the loader without putting them on the stage. And when I try to load the images dynamically it keeps on recreating the swf's by placing another one in the loader even though I am using :

stage.removeChild(loader);
loader = new Loader();. 

Any help or tutorials on this information would be great.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

两人的回忆 2024-09-17 12:49:46

我会为您要加载的每个图像使用单独的加载器。这是一个如何实现它的简单示例:

*编辑:它正在切断包部分,请原谅我不理解 stackoverflow 的代码解析器。 *

`包
{
导入 flash.display.Loader;
导入 flash.display.Sprite;
导入 flash.events.Event;
导入 flash.events.MouseEvent;
导入 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;              
        }
    }


}

}
`

I would use separate Loader's for each image you want to load. here's a quick example of how you could implement it:

*edit:It's cutting off the package part, please forgive me for not understanding stackoverflow's code parser. *

`package
{
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;              
        }
    }


}

}
`

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文