Flash在Windows和Mac上以不同的方式加载xml

Flash在Windows和Mac上以不同的方式加载xml,xml,flash,actionscript,actionscript-2,Xml,Flash,Actionscript,Actionscript 2,我正在使用AS2.0加载一个xml文件。在Mac上,所有元素都完全加载,但只要我在Windows上运行它,就只加载类型为item的第一个元素。当我在Mac上运行它时,元素被加载,所有的项都是单独的按钮。当我在Windows上运行它时,只显示一个按钮,其名称为ch1。维珍集团控股公司。其他项元素均未加载。我没有Windows版本的Flash可供使用,因此无法调试 是否有另一种方法来确定这是与XML文件加载不完全有关,还是与Movieclips的深度有关?这是你的电话号码 以下是我的XML: <

我正在使用AS2.0加载一个xml文件。在Mac上,所有元素都完全加载,但只要我在Windows上运行它,就只加载类型为
item
的第一个元素。当我在Mac上运行它时,元素被加载,所有的
项都是单独的按钮。当我在Windows上运行它时,只显示一个按钮,其名称为ch1。维珍集团控股公司。其他
元素均未加载。我没有Windows版本的Flash可供使用,因此无法调试

是否有另一种方法来确定这是与XML文件加载不完全有关,还是与Movieclips的深度有关?这是你的电话号码

以下是我的XML:

<?xml version="1.0" encoding="UTF-8"?>
<menu>
    <item link="vgh" name="ch1. Virgin Group Holdings" movie="VirleoGH">
        <menuitem link="vgh_overview">Group Overview</menuitem>
        <menuitem link="vgh_capacity">Group Capacity</menuitem>
        <menuitem link="vgh_archive">Certification Archive</menuitem>
        <menuitem link="vgh_timeline">Timeline</menuitem>
    </item>
    <item link="mdb" name="ch2. Manny Design Bureau" movie="MechanologyDB">
        <menuitem link="mdb_overview">Overview</menuitem>
        <menuitem link="mdb_archive">Works Archive</menuitem>
        <menuitem link="mdb_showroom">Showroom</menuitem>
        <menuitem link="mdb_skills">Core Skills</menuitem>
        <menuitem link="mdb_products">Products</menuitem>
    </item>
    <item link="sai" name="ch3. Special Autonomic Industries" movie="SpecialAI">
        <menuitem link="sai_overview">Overview</menuitem>
        <menuitem link="sai_archive">Works Archive</menuitem>
        <menuitem link="sai_showroom">Showroom</menuitem>
        <menuitem link="sai_skills">Core Skills & Serices</menuitem>
        <menuitem link="sai_products">Products</menuitem>
        <menuitem link="sai_infrastructure">Infrastructure</menuitem>
    </item>
    <item link="iacs" name="ch4. Interesting And Cool Stuff"></item>
</menu>
有人介意给我指点我错过的陷阱吗

问候与TIA

//编辑buildMenu()函数的src

//从收到的XML文件构建多维数组
函数buildMenu(菜单:XML):Void{
//确定现在有多少个房间
menuArray=menu.firstChild.childNodes;
变量长度:Number=menuArray.length;
//根据腔室数量动态
对于(变量i:Number=0;i
//编辑2

我现在从远程服务器(Linux box)运行这个文件,但仍然只有第一个元素在Windows上加载,没有兄弟元素。在Mac电脑上,一切都很顺利,我已经走到了死胡同,我的最后期限(草案2)还有12个小时,我还需要在里面休息一晚。有人知道这可能是什么吗?我们将真诚地接受任何建议。

问候你和蒂亚

//编辑3

我现在正在Windows中调试,发现XML文件最终会被完全加载。奇怪的是,我跟踪了所有movieclip的
\ux
\uy
值,所有这些值都不断地变化到一个可接受的值,但仍然只有第一个添加的movieclip在舞台上可见。我已经追踪了它们的深度,事实上它们是不同的,它们被启用(追踪),它们是可见的(也被追踪),所有的东西在Mac上都工作得很完美,除了我在Windows上运行它,所以很明显,Windows中的Flash Player在做一些意想不到的事情,以前有人遇到过吗

我真的很感谢你的帮助


问候和TIA。

您对XML文件使用什么编辑器? Windows和Mac有不同的行尾字符。

你试过了吗

menu.ignoreWhite = false;

Windows使用CR+LF标记换行符,Mac使用LF我不确定这是否是问题的原因,但在XML中需要注意的两件事是,&在“核心技能与服务”中使XML无效。Flash对这些事情非常宽容,但更严格的解析器会将其报告为错误。例如,Firefox将不显示该XML,并根据&的位置报告“XML解析错误:格式不正确”。尝试在Firefox(或IE)中打开XML文件通常是发现Flash/AS2不会报告的XML错误的快速方法

因此,要在文本中使用&,需要将文本标记为CDATA,使其成为有效的XML:

<menuitem link="sai_skills"><![CDATA[Core Skills & Services]]></menuitem>


另一件需要注意的事情(同样,这可能不是问题的原因)是确保文件实际上是以UTF-8格式保存的。仅在XML中使用encoding=“UTF-8”是不够的,还需要将文件另存为UTF-8。这是一个非常常见的错误,但正如您所说,您使用Dreamweaver,我假设Dreamweaver通常负责这方面的工作

我使用Dreamweaver CS4,据我所知,行尾字符被设置为Windows格式。你知道一个简短的方法来纠正任何错误的行尾字符吗?嗯,我现在在Dreamweaver CS3中在Windows计算机上编辑了该文件,我删除了所有新行并手动将它们放回。尽管如此,Flash只加载一个元素,但不加载其余的同级元素。我不能,这将完全摆脱我的解析。你自己在解析xml吗?为什么不使用API方法?对不起,这是我唯一习惯的方法。你推荐什么API?
ignoreWhite
只忽略不重要的空白(即一个标记的结尾和另一个标记的开头之间的空白)。如果你打开它,它不太可能给你带来问题。我确实试过了,但是它什么也没有加载,包括Mac和Windows。请提供mainMenu.buildMenu(此)的源代码;哦,是的,我把它改成了核心技能和服务。此外,我还检查了Dreamweaver和Prefs状态,该状态应将所有新文件保存为Unicode 5.0 UTF-8。我现在在Linux服务器上远程运行它,但Windows计算机仍然只显示第一个元素“ch1.Virleo Group Holdings”。我不明白。
menu.ignoreWhite = false;
<menuitem link="sai_skills"><![CDATA[Core Skills & Services]]></menuitem>