+ -
当前位置:首页 → 问答吧 → 创建XML列表,点击出了点问题。

创建XML列表,点击出了点问题。

时间:2010-12-13

来源:互联网

结合XML做一个招聘信息,现在有两个问题,不知道哪里出错了。

(1)点击列表一,却出现的是列表二的内容,点击列表二,出现的是三的内容。但是trace出来没错呀。
(2)进入详细内容后,里面还有两个按钮,【要求】和【技能】,但是两个按钮点击却不能显示出内容。
不知为什么。
复制内容到剪贴板
代码:
// 管理xml
// 创建新的xml实例,记得使用ignoreWhite =true;
var info_xml = new XML();
info_xml.ignoreWhite = true;
// xml的onload事件,确保所有的xml 文件完全载入。
info_xml.onLoad = function(success) {
    if (success) {
        CreateMenu(this);
    } else {
        trace("Error loading XML file");
    }
    // 如果没成功则显示出错信息。
};
// 载入xml文件。
info_xml.load("info_finder.xml");
///点击列表后
function DisplayInfo() {
    menu_mc._visible = false;
    infobox_mc._visible = true;
    infobox_mc.content_txt.text = this.des_text;
}
//关闭按钮点击时,显示出menu_mc,同时隐藏infobox_mc.
infobox_mc.close_btn.onRelease = function() {
    menu_mc._visible = true;
    infobox_mc._visible = false;
    infobox_mc.content_txt.text = "";
};
//要求按钮点击
infobox_mc.btn1.onRelease=function(){
    trace("a");
    infobox_mc.content_txt.text = this.des_text;
}
//技能按钮点击
infobox_mc.btn2.onRelease=function(){
    trace("b");
    infobox_mc.content_txt.text = this.jineng_text;
}
infobox_mc._visible = false;
// 开始的时候只显示infobox_mc.
// 初始导航的位置变量
var item_spacing = 28;
// 每个按钮的间距
var item_count = 0;
// 按钮的数量
//依据xml创建导航,通过for 循环将按钮贴加到menu_mc中。
function CreateMenu(menu_xml){
    var items=menu_xml.firstChild.firstChild.childNodes;
    for(var i=0;i<items.length;i++){
        if(items[i].attributes.type=="section"){
            var zhiwei = items[i].childNodes[0];
            //trace(zhiwei);
            var worktime=items[i].childNodes[1];
            //trace(worktime);
            var edu=items[i].childNodes[2];
            //trace(edu);
            var workadd=items[i].childNodes[3];
            //trace(workadd);
            var fabutime=items[i].childNodes[4];
            //trace(fabutime);
            var des=items[i].childNodes[5];
            //trace(des);
            item_mc.main_btn.des_text = des.firstChild.nodeValue;
            trace(des.firstChild.nodeValue);///////输出职位说明。
            var jineng=items[i].childNodes[6];
            item_mc.main_btn.jineng_text = jineng.firstChild.nodeValue;
            trace(jineng.firstChild.nodeValue);///////////输出技能要求。
            var item_mc = menu_mc.attachMovie("menu_item", "item"+item_count, item_count);
            item_mc._y = item_count*item_spacing;
            item_count++;
            item_mc.zhiwei_txt.text = zhiwei.firstChild.nodeValue;
            item_mc.jingyan_txt.text = worktime.firstChild.nodeValue;
            item_mc.xueli_txt.text = edu.firstChild.nodeValue;
            item_mc.didian_txt.text = workadd.firstChild.nodeValue;
            item_mc.shijian_txt.text = fabutime.firstChild.nodeValue;
            item_mc.main_btn.onRelease = DisplayInfo;
            
            }
        }
}
[ 本帖最后由 568041915 于 2010-12-13 12:00 编辑 ]

附件

xml列表错误.rar (14.11 KB)

2010-12-13 11:58, 下载次数: 2

作者: 568041915   发布时间: 2010-12-13

1 注意代码的顺序
2 注意事件函数中this 指的是谁
复制内容到剪贴板
代码:
// 管理xml
// 创建新的xml实例,记得使用ignoreWhite =true;
var nowJB:MovieClip;
var info_xml = new XML();
info_xml.ignoreWhite = true;
// xml的onload事件,确保所有的xml 文件完全载入。
info_xml.onLoad = function(success) {
    if (success) {
        CreateMenu(this);
    } else {
        trace("Error loading XML file");
    }
    // 如果没成功则显示出错信息。
};
// 载入xml文件。
info_xml.load("info_finder.xml");
///点击列表后
function DisplayInfo() {
    nowJB=this;
    menu_mc._visible = false;
    infobox_mc._visible = true;
    infobox_mc.content_txt.text = this.des_text;
}
//关闭按钮点击时,显示出menu_mc,同时隐藏infobox_mc.
infobox_mc.close_btn.onRelease = function() {
    menu_mc._visible = true;
    infobox_mc._visible = false;
    infobox_mc.content_txt.text = "";
};
//要求按钮点击
infobox_mc.btn1.onRelease=function(){
    trace("a");
    infobox_mc.content_txt.text = nowJB.des_text;
}
//技能按钮点击
infobox_mc.btn2.onRelease=function(){
    trace("b");
    infobox_mc.content_txt.text = nowJB.jineng_text;
}
infobox_mc._visible = false;
// 开始的时候只显示infobox_mc.
// 初始导航的位置变量
var item_spacing = 28;
// 每个按钮的间距
var item_count = 0;
// 按钮的数量
//依据xml创建导航,通过for 循环将按钮贴加到menu_mc中。
function CreateMenu(menu_xml){
    var items=menu_xml.firstChild.firstChild.childNodes;
    for(var i=0;i<items.length;i++){
        if(items[i].attributes.type=="section"){
            var zhiwei = items[i].childNodes[0];
            //trace(zhiwei);
            var worktime=items[i].childNodes[1];
            //trace(worktime);
            var edu=items[i].childNodes[2];
            //trace(edu);
            var workadd=items[i].childNodes[3];
            //trace(workadd);
            var fabutime=items[i].childNodes[4];
            //trace(fabutime);
            var des=items[i].childNodes[5];
            //trace(des);
            
            var jineng=items[i].childNodes[6];
            
            var item_mc = menu_mc.attachMovie("menu_item", "item"+item_count, item_count);
            item_mc.main_btn.jineng_text = jineng.firstChild.nodeValue;
            item_mc.main_btn.des_text = des.firstChild.nodeValue;
            item_mc._y = item_count*item_spacing;
            item_count++;
            item_mc.zhiwei_txt.text = zhiwei.firstChild.nodeValue;
            item_mc.jingyan_txt.text = worktime.firstChild.nodeValue;
            item_mc.xueli_txt.text = edu.firstChild.nodeValue;
            item_mc.didian_txt.text = workadd.firstChild.nodeValue;
            item_mc.shijian_txt.text = fabutime.firstChild.nodeValue;
            item_mc.main_btn.onRelease = DisplayInfo;
            
            }
        }
    
    
    
    
    
    
    
}

作者: flash023   发布时间: 2010-12-13