我正在使用AS2.0加载XML文件。在Mac上,所有元素都完全加载,但我一在Windows上运行它,就只加载第一个类型的元素
item
荷载。当我在Mac上运行它时,元素被加载
项目
是单独的按钮。当我在Windows上运行它时,只有一个按钮出现,它的名称是ch1。维珍集团控股公司。其他的都没有
项目
元件负载。我没有Windows版本的Flash,因此无法调试。
是否有其他方法来确定这与XML文件加载不完整或movieclips的深度有关?这是
URL
以下是我的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>
下面是我加载XML文件的代码:
var xmlFile:String = "menu.xml";
var menu:XML = new XML();
// ignores spaces and declaration in XML file, improves parsing of XML file
menu.ignoreWhite = true;
// create 'mainMenu' (type Menu), holds all functions related to menu and constructs array from XML
var mainMenu:Menu = new Menu();
// event handler triggerred when XML is completely loaded
menu.onLoad = function(success:Boolean) {
if (success) {
// passes XML file to buildMenu function in Menu class to build menu Array
mainMenu.buildMenu(this);
// passes 'mainMenu' (type Menu) to buildScene function, builds whole scene with individual MC's
buildScene(mainMenu);
// set depth of navigation to top of pile, in order for buttons to move behind the navigation, instead of on top of it
_root.navigation.swapDepths(theScene);
}
}
// load XML file
menu.load(xmlFile);
有人介意给我指点我错过的陷阱吗?
问候&tia
//编辑buildmenu()函数的src
// build multi-dimensional array from XML file received
function buildMenu(menu:XML):Void {
// determine how many chambers there are now
menuArray = menu.firstChild.childNodes;
var length:Number = menuArray.length;
// dynamic according to number of chambers
for (var i:Number = 0; i < length; i++) {
var sublength:Number = menuArray[i].childNodes.length;
var submenu:Array = new Array();
// chamber name and link
var xmlNode:XMLNode = menuArray[i];
submenu["name"] = xmlNode.attributes.name;
submenu["link"] = xmlNode.attributes.link;
submenu["movie"] = xmlNode.attributes.movie;
trace(submenu["name"]);
// create sub-item for each chamber
for (var j:Number = 0; j < sublength; j++) {
var subXmlNode:XMLNode = xmlNode.childNodes[j];
var item:Array = new Array(subXmlNode.firstChild, subXmlNode.attributes.link);
submenu.push(item);
}
// create an entry for each chamber
mainmenu.push(submenu);
}
}
//编辑2
我现在从远程服务器(Linux设备)运行这个文件,但是仍然只有第一个元素加载到Windows上,没有兄弟姐妹。在Mac上,一切都很好,我已经走到了死胡同,为此我的最后期限(草案2)在大约12小时内,我仍然需要一个晚上的休息。有人知道这可能是什么吗?任何建议或建议都将被诚意接受。这个
url
问候和短暂性脑缺血发作。
//编辑3
我现在正在Windows中进行调试,发现XML文件最终会完全加载。奇怪的是我追踪
_x
和
_y
所有movieclip的值,都会不断地变化到一个可接受的值,但舞台上仍然只能看到第一个添加的movieclip。我追踪了它们的深度,事实上它们是不同的,它们被启用(追踪),它们是
_visible
(也追溯到了这一点),除了我在Windows上运行它,所有东西都在Mac上运行得很好,很明显,Windows中的Flash播放器在做一些意想不到的事情时,有人以前遇到过这个问题吗?
我非常感谢你的帮助。
问候和短暂性脑缺血发作。