将外部 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 文件导入闪存的主要内容,如果未能解决你的问题,请参考以下文章

如何将XML文件导入Excel中

如何将 JSON, Text, XML, CSV 数据文件导入 MySQL

如何将 JSON,Text,XML,CSV 数据文件导入 MySQL

玩转Spring Boot 自定义配置导入XML配置与外部化配置

快速将CSV文件导入Excel文件

IDEA中maven如何将jar包导入本地的maven库