将外部 xml 文件导入闪存
Posted
技术标签:
【中文标题】将外部 xml 文件导入闪存【英文标题】:Importing external xml file into flash 【发布时间】:2014-06-28 12:19:35 【问题描述】:我正在创建一个 Flash 站点,该站点通过一个 xml 文件加载外部信息,该 xml 文件由我们的讲师提供给我们以供使用。在 flash 示例中,我们得到了很好的 xml 导入,将 xml 文件中的图像和文本加载到页面上,但是当我复制确切的图层并将它们粘贴到我的站点场景中时,只加载了图像。我已将我的 Flash 站点保存在与示例站点完全相同的位置,并将 xml 文件保存在同一目录中。这是flash中的actionscript代码:
mediaFolder = "book/";
//
xmlObject = new XML();
xmlObject.onLoad = readMedia;
xmlObject.ignoreWhite = true;
xmlObject.load("book.xml");
//
stop();
//
function readMedia(success)
if (success == true)
// Root node
rootNode = xmlObject.firstChild;
// Size of book/CD collection = number of child nodes
sizeOfCollection = rootNode.childNodes.length;
// Current node = first child node
currentNode = rootNode.firstChild;
// Display next book/CD.
drawItem();
function drawItem()
// Title
title.text = currentNode.childNodes[0].firstChild;
// Author
authorName.text = currentNode.childNodes[1].firstChild;
// Load in external JPEG of book/CD cover
coverImage.loadMovie(mediaFolder + currentNode.childNodes[2].firstChild);
// Book price and currency symbol
bookPrice.text = currentNode.childNodes[4].attributes.currency + " " + currentNode.childNodes[4].firstChild;
//
debug();
//
nextBook.onRelease = function()
nextNode = currentNode.nextSibling;
if (nextNode == null)
break;
else
currentNode = nextNode;
drawItem();
;
//
previousBook.onRelease = function()
nextNode = currentNode.previousSibling;
if (nextNode == null)
break;
else
currentNode = nextNode;
drawItem();
;
// Read books XML file.
books.onRelease = function()
xmlFile = "book.xml";
mediaFolder = "book/";
xmlObject.load(xmlFile);
;
// Read music XML file.
music.onRelease = function()
xmlFile = "music.xml";
mediaFolder = "music/";
xmlObject.load(xmlFile);
;
/*
Display debugging information about each XML node,
into fields on the right side of the screen.
*/
function debug()
debugCurrentNode = currentNode;
debugCurrentNodeChildNodes = currentNode.childNodes;
debugCurrentNodeChildNodes0 = currentNode.childNodes[0];
debugCurrentNodeChildNodes0child = currentNode.childNodes[0].firstChild;
debugCurrentNodeChildNodes1 = currentNode.childNodes[1];
debugCurrentNodeChildNodes1child = currentNode.childNodes[1].firstChild;
代码是正确的,因为它加载到示例 Flash 站点中。这是它正在加载的 xml 文件之一:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<BOOK_COLLECTION>
<BOOK>
<TITLE>Hi</TITLE>
<AUTHOR>Jon Wozencroft</AUTHOR>
<BOOKCOVER>brody.jpg</BOOKCOVER>
<ISBN>00-456754674-11</ISBN>
<PRICE Currency="$">44.25</PRICE>
</BOOK>
<BOOK>
<TITLE>Actionscript using Flash MX</TITLE>
<AUTHOR>Colin Moock</AUTHOR>
<BOOKCOVER>asdg.jpg</BOOKCOVER>
<ISBN>00-4567-65785-11</ISBN>
<PRICE Currency="$">24.50</PRICE>
</BOOK>
<BOOK>
<TITLE>The Design Of Everyday Things</TITLE>
<AUTHOR>Donald Norman</AUTHOR>
<BOOKCOVER>norman.jpg</BOOKCOVER>
<ISBN>00-477754674-11</ISBN>
<PRICE Currency="$">16.50</PRICE>
</BOOK>
<BOOK>
<TITLE>Maeda@Media</TITLE>
<AUTHOR>John Maeda</AUTHOR>
<BOOKCOVER>media.jpg</BOOKCOVER>
<ISBN>00-422567-65785-11</ISBN>
<PRICE Currency="$">17.00</PRICE>
</BOOK>
</BOOK_COLLECTION>
【问题讨论】:
【参考方案1】:嗯,首先,我会问你的讲师,因为不了解你的环境真的很难猜测发生了什么
但是由于正在加载图像而没有加载文本,所以我的第一个猜测是您根本没有嵌入您从 xml 分配动态文本的文本字段使用的字体。
你在使用 adobe flash ide 吗?如果你这样做了,你可以通过简单地点击文本字段然后点击“嵌入”按钮来嵌入字体。当然,嵌入文本字段将要使用的字体...
【讨论】:
以上是关于将外部 xml 文件导入闪存的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JSON, Text, XML, CSV 数据文件导入 MySQL
如何将 JSON,Text,XML,CSV 数据文件导入 MySQL