0

我有这个 XML 显示来自 mysql 数据库的一些数据。

我需要从 xml 中提取其中一些数据(即名称、价格等)并在 Flash 应用程序中显示它们。

现在,我可以拉出图像并将它们显示在闪存中,但是我无法将 xml 中的文本显示到闪存中。

这是我的xml的结构:

<Data>
<ID>127</ID>
<Name>Example 1</Name>
<Price>12!!</Price>
<Image>inventory_images/127.jpg</Image>
<Date>Mar 08, 2013</Date>
</Data>

这是将在闪存中显示产品图像的代码(Flash AS3)。

stop();
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;

var xmlLoader:URLLoader;
var xml:XML;
var xmlList:XMLList;



var uRequest = new URLRequest("PATH-TO-MY-XML-FILE");
xmlLoader = new URLLoader(uRequest);
xmlLoader.addEventListener(Event.COMPLETE, onXMLLoad);
var imgLoader:Loader;


function onXMLLoad(e:Event) {
    xml = new XML(e.target.data);
    imgLoader = new Loader();
    imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImgLoaded);
    imgLoader.load(new URLRequest(xml.Data.Image.text()[0]));
}


function onImgLoaded(e:Event) {
    addChild(imgLoader);
    imgLoader.height = 300;
    imgLoader.width = 300;
}

有人可以帮我解决这个问题吗?

提前致谢。

4

2 回答 2

1

因此,如果我正确理解您的问题,图像加载和显示部分将起作用。如果你想显示你的文本,你可以像这样简单地使用 TextFields:

function onXMLLoad(e:Event) {
    xml = new XML(e.target.data);
    var tf:TextField = new TextField();
    tf.text = xml.Name.text()[0];//or whatever part you want to display
    addChild(tf);//you'll want to style and move tf, maybe.
}

弹性标签也可以...

编辑:我也看到你在时间线上,所以你可以简单地使用一个名为“myTextField”的动态文本字段,然后你的代码:

var myString:String = 'loading';
function onXMLLoad(e:Event) {
    xml = new XML(e.target.data);
    myTextField.text =  "" + xml.Name.text()[0];
}
于 2013-03-21T13:41:23.130 回答
0

尝试 imgLoader.load(new URLRequest(xml.Image.toString())); 您可能需要在 xml 中使用完整的 url,例如http://yoursite.com/inventory_images/127.jpg,而不是 inventory_images/127.jpg,或者将http://yoursite.com/添加到 url 字符串中。

于 2013-03-21T11:53:00.393 回答