【问题标题】:Load image and have it ready when button is clicked加载图像并在单击按钮时准备好
【发布时间】:2013-04-07 09:32:31
【问题描述】:

我正在尝试通过使用 XML 作为我的“数据库”来改进我的代码,以便轻松添加删除图像。

在我这样做之前是导入图像,然后将其添加到为动作脚本导出的影片剪辑中,然后在单击按钮时找到该影片剪辑并将其添加到要使用的舞台。

对于新的 XML 方式,我正在尝试尽可能地保持这种相似性。

我可以导入我的 XML,然后找到图像并使用它准备好:

    function importXML(){
        var loadXML:URLLoader = new URLLoader();
        loadXML.load(new URLRequest("../xml/images.xml"));
        loadXML.addEventListener(Event.COMPLETE, processXML);
    }


    function processXML(e:Event):void{
        imageXML = new XML(e.target.data);
        var image   = imageXML.image.(@name=="image1").image;
        trace(image);
        importImage(image);
    }


   function importImage(imageName:String) {
        var loadIMG = new Loader();
        var url     = "../images/last_steps/"+imageName;
        var url_req:URLRequest = new URLRequest(url);
        loadIMG.load(url_req);
        loadIMG.name = "image1";

    }

现在我试着给它一个名字,这样点击时运行的函数就可以工作了:

    function myButtonClick(ev:MouseEvent):void
    {
        addImage("image1");
    }

    function addImage(image:String)
    {
        var imageName = image;
        var imageClass:Class = getDefinitionByName(imageName) as Class;

         addChild(imageClass);
    }

当我手动将它添加到电影剪辑中时,最后一个功能会起作用,但现在我也试过了:

    function addImage(image:String)
    {
        var imageName = image;
        // var imageClass:Class = getDefinitionByName(imageName) as Class;

        addChild(imageName);
    }

这也不行。

总结一下我的问题是如何在单击按钮时将通过 XML 导入的图像链接到名称?

【问题讨论】:

  • function myButtonClick(ev:MouseEvent):void { addImage("image1");这是在加载图像之前启动的事件
  • 在您的 xml 中是否会为每个图像创建一个按钮?

标签: actionscript-3 flash


【解决方案1】:

最好的方法是简单地在onComplete function() 中为按钮实例添加事件监听器,然后你可以addChild,在这种情况下,图片总是在这个时候准备好

【讨论】:

  • 所以没有办法只排序设置“图像名称”,然后在点击时将其传递给“getChildByName()”之类的东西?
  • 你看错了,对不起......大声笑一切都是一个基本的形式,所以如果你想要一个名字你给它一个名字,当你在 Flash 中加载图像时,你给加载器命名为“我的加载器”,您可以定义您想要的操作方式。
  • get child be name 将由您自己或 flash 预先定义
  • @jushua 我怎么看错了? 1. 加载图像 2. 添加到影片剪辑 3. 为影片剪辑命名 4. 再次找到该影片剪辑并用它做我想做的事。这种事情必须是可能的,因为它可以在许多其他编程语言中完成。也许我只是不明白你在说什么,因为似乎使用了很多糟糕的英语。另外,如果我要寻求您的帮助,我会在您的网站上进行堆栈。
  • 还不错,你上面写的是对的,我还以为你在暗示什么,但你还是需要在loader上有一个完整的功能,让它知道图片准备好了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
相关资源
最近更新 更多