【发布时间】: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