+ -
当前位置:首页 → 问答吧 → 数据混淆及滚动失败问题。[已解决]

数据混淆及滚动失败问题。[已解决]

时间:2010-12-21

来源:互联网

场景中有两个按钮,btn1和btn2  通过点击两个按钮来加载XML创建一个列表。
现在问题是,若点击了btn1,在点击btn2,那么btn1的内容会和btn2的内容混和在一起。怎么回事呢?
还有,数据很多形成的列表我让它可以滚动也失败了。怎么回事?

代码:
复制内容到剪贴板
代码:
stop();
import mx.transitions.Tween;
list_mc._visible = false;
btn1.onRelease = function() {
    list_mc._visible = true;
    CreateMenu(info_xml,"按钮一内容");
    list_mc.shen_txt.text = "按钮一";
};
btn2.onRelease = function() {
    list_mc._visible = true;
    CreateMenu(info_xml,"按钮二内容");
    list_mc.shen_txt.text = "按钮二";
};
var info_xml = new XML();
info_xml.ignoreWhite = true;
info_xml.onLoad = function(success) {
    if (success) {
        //CreateMenu(this);
    } else {
        trace("Error loading XML file");
    }
};
// 载入xml文件。
info_xml.load("info_finder.xml");
///点击列表后
function DisplayInfo() {
    infobox_mc.content_txt.htmlText = this.des_text;
    infobox_mc.chtitle_txt.htmlText = this.ch_text;
    infobox_mc.entitle_txt.htmlText = this.en_text;
    }
infobox_mc._visible = false;
var item_spacing = 28;
var item_count = 0;
function CreateMenu(menu_xml, namestr) {
    var items = menu_xml.firstChild.firstChild.childNodes;
    //trace(items);
    for (var i = 0; i<items.length; i++) {
        if (items[i].attributes.name == namestr) {
            var site = items[i].childNodes;
            for (var j = 0; j<site.length; j++) {
                var item_mc = list_mc.menu_mc.attachMovie("menu_item", "item"+j, j);
                item_mc._y = j*item_spacing;
                var chshi = site[j].attributes.chname;
                var enshi = site[j].attributes.enname;
                var des = site[j].childNodes[0];
                var allpic = site[j].childNodes[1];
                for (var k = 0; k<allpic.childNodes.length; k++) {
                    var thumb = allpic.childNodes[k].attributes.thumbPath;
                    var bigPath = allpic.childNodes[k].attributes.bigPath;
                    item_mc.main_btn["thumb"+k] = thumb;
                    item_mc.main_btn["thumb"+k].bigPath = bigPath;
                }
                trace(j);
                item_mc.title_txt.text = chshi;
                item_mc.main_btn.des_text = des.firstChild.nodeValue;
                item_mc.main_btn.ch_text = chshi;
                item_mc.main_btn.en_text = enshi;
                item_mc.main_btn.onRelease = DisplayInfo;
            }
        }
        //end if     
    }
}
里面列表滚动的代码:
复制内容到剪贴板
代码:
menu_mc.setMask(mask_mc);
var moveArea:Number=menu_mc._height-mask_mc._height;
var topY:Number=menu_mc._y;
var bottomY:Number=topY-moveArea;
up_btn.onPress=function(){
    trace(menu_mc._y)
    onEnterFrame=function(){
        if(topY>menu_mc._y)
            menu_mc._y+=1;
    }
}
up_btn.onRelease=function(){
    delete onEnterFrame;
}
down_btn.onPress=function(){
    trace(menu_mc._y)
    onEnterFrame=function(){
        if(menu_mc._y>bottomY)
            menu_mc._y-=1;
    }
}
down_btn.onRelease=function(){
    delete onEnterFrame;
}
[ 本帖最后由 568041915 于 2010-12-21 18:19 编辑 ]

附件

数据混淆及滚动失败.rar (15.29 KB)

2010-12-21 15:58, 下载次数: 1

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

1  

var site = items[i].childNodes;
//生成新的之前,清除旧的
                     for (var jb in list_mc.menu_mc){
                            list_mc.menu_mc[jb].removeMovieClip();
                     }
//清除完成
                     for (var j = 0; j<site.length; j++) {
                            var item_mc = list_mc.menu_mc.attachMovie("menu_item", "item"+j, j);
                            item_mc._y = j*item_spacing;

2  列表无法滚动回答次数太多了,楼主可以搜索一下

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

谢谢。原来是这样。

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