0

我正在尝试通过使用 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);
    }

最后一个函数在我手动将它添加到movieClip时会起作用,但现在它不起作用我也试过了:

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

        addChild(imageName);
    }

这也不起作用。

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

4

1 回答 1

0

最好的方法是简单地 onComplete function() 将事件侦听器添加到按钮实例,然后您可以添加Child,在这种情况下,图片将始终准备好

于 2013-04-07T11:28:29.017 回答