加载图像,并在点击按钮时准备就绪

问题描述:

我试图通过使用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导入的图像链接到单击按钮时的名称?

+0

功能myButtonClick(EV:MouseEvent)方法:void { addImage(“image1”);这是在图像加载之前天生的事件造成的扭曲 – joshua 2013-04-07 12:05:13

+0

在您的xml中,每个图像是否会创建一个按钮? – prototypical 2013-04-07 15:00:34

做到这一点,最好的方法是简单的onComplete函数()事件监听器添加到按钮实例,那么你可以的addChild,画面将做好准备总是在这个时候这个条件

+0

所以没有办法只是设置'图像名称',然后通过点击可以通过像'getChildByName()'这样的东西来找到? – 2013-04-07 13:01:45

+0

你看着它错了,抱歉...大声笑一切都是一个基本的形式,所以如果你想要图像的名字,你给它一个,当你在Flash中加载图像时,你给了装载机,,, ,名为“我的装载机”,你可以定义你想要的操作方式。 – joshua 2013-04-07 13:07:54

+0

得到孩子的名字将被preififined,无论是由自己或flash – joshua 2013-04-07 13:09:28