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

Posted

技术标签:

【中文标题】Flash内的搜索框,从本地xml读取数据(actionscript)【英文标题】:Search box inside Flash, read data from local xml (actionscript) 【发布时间】:2015-01-19 04:33:11 【问题描述】:

我无法完成这项工作。我尝试从外部 xml 在闪存上显示数据。到目前为止,它只是获得第一个孩子,但我需要一个大型 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"/>

代码动作脚本

//Frame 1

getxmldata = new XML();
getxmldata.load("xmldata.xml", "");

//Frame 2

stop();

//Button 1

on (release)

    if (getxmldata.loaded) 
    
        var innerdata = getxmldata.firstchild;
        data1 = inner.nodeName;
        data2 = inner.attributes.val1;
        data3 = inner.attributes.val2;
        data4 = inner.attributes.val2;
    

然后我在 flash 4 中使用变量“data1”、“data2”、“data3”、“data4”的动态文本框。还有一个带有变量名“finder”的输入文本框,我需要在 xml 中找到输入文本给出的节点名称。或者有什么办法。如果将 xml 更改为 txt 什么的。

【问题讨论】:

这看起来像 Actionscript 2.0。我对此感到生疏,但您的 xml 条目确实应该看起来像 &lt;june_123&gt; val1="63400" val2="45" Val3="2" &lt;/june_123&gt;.. 除非您可以得到像 val1="63400" val2="45" Val3="2" 这样的字符串结果,然后执行字符串函数来提取您想要的内容,否则您不能在一个标签中抛出多个项目。也许其他人可以添加其他信息(尤其是一个标签中的多个条目..) @VC.One 搞错了。 XML 标记当然可以有多个属性。 【参考方案1】:

我编写的代码与您的 xml 文件配合得非常好。我使用了在主舞台中插入的btn_search 按钮和txt_search 文本字段。首先我们加载我们的 xml 文件,然后我们在 txt_search 中输入玩家名称,然后使用 btn_search 运行搜索:

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


【讨论】:

以上是关于Flash内的搜索框,从本地xml读取数据(actionscript)的主要内容,如果未能解决你的问题,请参考以下文章

JavaScriptJS读取XML文件并进行搜索

我无法让我的网页从同一文件夹内的 xml 文件中提取数据

我将如何使用 XML 引用 flash 中的帧

从在线播放的 Flash 中获取数据

从 javascript 读取本地 xml

怎么用按键精灵将EXCEL表A1列内的数字逐个复制粘贴到某网页搜索框搜索