Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash内的搜索框,从本地xml读取数据(actionscript)_Xml_Flash_Actionscript_Actionscript 2 - Fatal编程技术网

Flash内的搜索框,从本地xml读取数据(actionscript)

Flash内的搜索框,从本地xml读取数据(actionscript),xml,flash,actionscript,actionscript-2,Xml,Flash,Actionscript,Actionscript 2,我很难做到这一点。我尝试从外部xml在flash上显示数据。到目前为止,它只适用于获取第一个孩子,但我需要在大型xml数据中设置一个搜索框。有没有办法通过自定义节点进行搜索?假设我在输入文本上写下“june_123”,所以在点击按钮后,我得到值(姓名、分数、级别、寿命)并显示出来 代码xml <mark56 val1="5000" val2="23" Val3="3"/> <june_123 val1="63400" val2="45" Val3="2"/> <ug

我很难做到这一点。我尝试从外部xml在flash上显示数据。到目前为止,它只适用于获取第一个孩子,但我需要在大型xml数据中设置一个搜索框。有没有办法通过自定义节点进行搜索?假设我在输入文本上写下“june_123”,所以在点击按钮后,我得到值(姓名、分数、级别、寿命)并显示出来

代码xml

<mark56 val1="5000" val2="23" Val3="3"/>
<june_123 val1="63400" val2="45" Val3="2"/>
<uglyman val1="600" val2="12" Val3="1"/>
<sugarpunch val1="456223" val2="54" Val3="3"/>

然后我在Flash4动态文本框中有变量“data1”、“data2”、“data3”、“data4”。还有一个带有变量名“finder”的输入文本框,我需要在xml中找到输入文本给定的节点名。或者是任何一种方式。如果将xml更改为txt或其他内容。

我编写了一段代码,可以很好地处理xml文件。我使用了一个
btn\u search
按钮和插入到主阶段的
txt\u search
文本字段。首先,我们加载xml文件,然后在
txt\u搜索中键入玩家名称,然后使用
btn\u搜索运行搜索:

var xml:XML = new XML()
    xml.load('xmldata.xml') 

btn_search.onRelease = function(){

    if(txt_search.text != ''){
        search_player_by_name(txt_search.text)
    }

}

function search_player_by_name(player_name){    

    if(!xml.loaded){
        trace('the xml file is not yet loaded')
        return false
    }

    var players, player

    players = xml.childNodes
    for (i=0; i<players.length; i++) {
        player = players[i]
        if(player.nodeName != '' && player.nodeName != null){
            if(player.nodeName == player_name){
                trace('name : ' + player.nodeName)
                trace('score : ' + player.attributes.val1)
                trace('level : ' + player.attributes.val2)
                trace('lives : ' + player.attributes.Val3)
                // return an array that contains player data
                return new Array(player.nodeName, player.attributes.val1, player.attributes.val2, player.attributes.Val3)
            }
        }
    }
    trace('there is no player with that name : ' + player_name)
    return false

}
var-xml:xml=new-xml()
load('xmldata.xml')
btn_search.onRelease=函数(){
如果(txt_search.text!=''){
按名称搜索玩家(txt\u search.text)
}
}
函数搜索按玩家名称(玩家名称){
如果(!xml.loaded){
跟踪('xml文件尚未加载')
返回错误
}
玩家,玩家
players=xml.childNodes

对于(i=0;它看起来像ActionScript2.0。我对它很生疏,但是您的xml条目应该看起来像
val1=“63400”val2=“45”Val3=“2”
。除非您同意获得类似
val1=“63400”val2=“45”Val3=“2”的字符串结果,否则您不能在一个标记中抛出多个项目
然后执行字符串函数提取所需内容。也许其他人可以添加其他信息(尤其是一个标记中的多个条目。)@VC.one是错误的。XML标记肯定可以有多个属性。
var xml:XML = new XML()
    xml.load('xmldata.xml') 

btn_search.onRelease = function(){

    if(txt_search.text != ''){
        search_player_by_name(txt_search.text)
    }

}

function search_player_by_name(player_name){    

    if(!xml.loaded){
        trace('the xml file is not yet loaded')
        return false
    }

    var players, player

    players = xml.childNodes
    for (i=0; i<players.length; i++) {
        player = players[i]
        if(player.nodeName != '' && player.nodeName != null){
            if(player.nodeName == player_name){
                trace('name : ' + player.nodeName)
                trace('score : ' + player.attributes.val1)
                trace('level : ' + player.attributes.val2)
                trace('lives : ' + player.attributes.Val3)
                // return an array that contains player data
                return new Array(player.nodeName, player.attributes.val1, player.attributes.val2, player.attributes.Val3)
            }
        }
    }
    trace('there is no player with that name : ' + player_name)
    return false

}