Foros del Web » Creando para Internet » Flash y Actionscript »

buscador en flash desde XML

Estas en el tema de buscador en flash desde XML en el foro de Flash y Actionscript en Foros del Web. Estoy tratando de crear un buscador en flash, introduzco un texto y hago una busqueda en el archivo xml, creo un movieclip por cada coicidencia. ...
  #1 (permalink)  
Antiguo 29/07/2011, 09:49
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
buscador en flash desde XML

Estoy tratando de crear un buscador en flash, introduzco un texto y hago una busqueda en el archivo xml, creo un movieclip por cada coicidencia. Cuando hago el click sobre el movieclip siempre me va al mismo link. Que estoy haciendo mal?

El xml es el siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<menu>
<item>
<titulo><![CDATA[ptz]]></titulo>
<desc><![CDATA[ptz ]]></desc>
<tipo><![CDATA[ptz]]></tipo>
<imagem><![CDATA[PTZ]]></imagem>
<link><![CDATA[7]]></link>
</item>
<item>
<titulo><![CDATA[nvr]]></titulo>
<desc><![CDATA[nvr ]]></desc>
<tipo><![CDATA[NVR]]></tipo>
<imagem><![CDATA[NVR]]></imagem>
<link><![CDATA[6]]></link>
</item>
<item>
<titulo><![CDATA[CAMARA]]></titulo>
<desc><![CDATA[camara]]></desc>
<tipo><![CDATA[camaras]]></tipo>
<imagem><![CDATA[camara]]></imagem>
<link><![CDATA[2]]></link>
</item>
<item>
<titulo><![CDATA[MODENS]]></titulo>
<desc><![CDATA[modemsyroutrs]]></desc>
<tipo><![CDATA[modems]]></tipo>
<imagem><![CDATA[moden]]></imagem>
<link><![CDATA[4]]></link>
</item>
<item>
<titulo><![CDATA[modens]]></titulo>
<desc><![CDATA[modemsyroutrs]]></desc>
<tipo><![CDATA[modens]]></tipo>
<imagem><![CDATA[routers]]></imagem>
<link><![CDATA[4]]></link>
</item>
<item>
<titulo><![CDATA[accesorios]]></titulo>
<desc><![CDATA[accesorios]]></desc>
<tipo><![CDATA[accesorio]]></tipo>
<imagem><![CDATA[accesorio]]></imagem>
<link><![CDATA[1]]></link>
</item>
<item>
<titulo><![CDATA[accesorio]]></titulo>
<desc><![CDATA[accesorios varios]]></desc>
<tipo><![CDATA[accesorios varios]]></tipo>
<imagem><![CDATA[accesorio vario]]></imagem>
<link><![CDATA[1]]></link>
</item>
<item>
<titulo><![CDATA[antenas]]></titulo>
<desc><![CDATA[antena varias]]></desc>
<tipo><![CDATA[antenas]]></tipo>
<imagem><![CDATA[antena]]></imagem>
<link><![CDATA[10]]></link>
</item>
</menu>

El codigo de Flash es el siguiente:

Donde introduzco el texto y presiono el boton

on (release) {
if (busca.text == "") {
Selection.setFocus("busca");
} else {
_root.filtro = _root.busca.text.toLowerCase();
_root.gotoAndPlay("xml");
}
}

donde hago la busqueda

System.useCodepage = true;
var meuXML:XML = new XML();
meuXML.ignoreWhite = true;
meuXML.load('BUSQUEDA.xml');
bt._visible = false;
url_array = this.firstChild.childNodes;
var armID:Array = [];
meuXML.onLoad = function() {
qtd = this.childNodes[0].childNodes.length;
for (var i = 0; i<qtd; i++) {
for (var a = 0; a<this.firstChild.childNodes[i].childNodes.length; a++) {
diminui = String(this.firstChild.childNodes[i].childNodes[a].childNodes).toLowerCase();
if (diminui.indexOf(_root.filtro) !== -1) {
armID.push(i);
}
}
}
armID = arranca(armID);
if (armID.length == 0) {
resultados.text = "Ningún archivo encontrado";
} else if (armID.length == 1) {
resultados.text = "1 archivo encontrado.";
} else {
resultados.text = "Resultados "+armID.length+" archivos.";
}
for (var i = 0; i<armID.length; i++) {
bt.duplicateMovieClip('bt'+i, _root.getNextHighestDepth());
_root['bt'+i]._y += bt._height*i+i;
/*************************/
var titulo = (this.childNodes[0].childNodes[armID[i]].childNodes[0].firstChild);
var desc = (this.childNodes[0].childNodes[armID[i]].childNodes[1].firstChild);
var tipo = (this.childNodes[0].childNodes[armID[i]].childNodes[2].firstChild);
var IMG = (this.childNodes[0].childNodes[armID[i]].childNodes[3].firstChild);
var link = (this.childNodes[0].childNodes[armID[i]].childNodes[4].firstChild);

/*************************/
_root['bt'+i].titulo.html = true;
_root['bt'+i].titulo.htmlText = (titulo+"<font color='#cc6600'> - "+(tipo)+"</font>");
_root['bt'+i].desc.html = true;
_root['bt'+i].desc.htmlText = (desc);
_root['bt'+i].link.text = link;
//url='"' + link + '"';



/*************************/
_root['bt'+i].BT_LINK.onRelease = function() {

if (_root['bt'+i].link.text = 1) {
getURL("javascript:void(window.open('accesorios.ht ml','ACCESORIOS','toolbar=no,menubar=no,scrollbars =no,resizable=no,top=0,left=0,width=460,height=640 '))");
} else if (_root['bt'+i].link.text = 2){
getURL("javascript:void(window.open('camara.html', 'camara','toolbar=no,menubar=no,scrollbars=no,resi zable=no,top=0,left=0,width=460,height=640'))");
} else if (_root['bt'+i].link.text = 3){
getURL("javascript:void(window.open('fijas.html',' fijas','toolbar=no,menubar=no,scrollbars=no,resiza ble=no,top=0,left=0,width=460,height=640'))");
} else if (_root['bt'+i].link.text = 4){
getURL("javascript:void(window.open('modemsyroutrs .html','modems','toolbar=no,menubar=no,scrollbars= no,resizable=no,top=0,left=0,width=460,height=640' ))");
} else if (_root['bt'+i].link.text = 5){
getURL("javascript:void(window.open('nvr.html','nv r','toolbar=no,menubar=no,scrollbars=no,resizable= no,top=0,left=0,width=460,height=640'))");
} else if (_root['bt'+i].link.text = 6) {
getURL("javascript:void(window.open('ptz.html','pt z','toolbar=no,menubar=no,scrollbars=no,resizable= no,top=0,left=0,width=460,height=640'))");
} else if (_root['bt'+i].link.text = 7){
getURL("javascript:void(window.open('sw.html','sw' ,'toolbar=no,menubar=no,scrollbars=no,resizable=no ,top=0,left=0,width=460,height=640'))");

};

//getURL("javascript:void(window.open("+link+",by,'t oolbar=no,menubar=no,scrollbars=no,resizable=no,to p=0,left=0,width=460,height=640'))");
};
}
};
function arranca(x) {
for (var i = 0; i<x.length; i++) {
if (x[i] == x[i+1]) {
x.splice(i, 1);
arranca(x);
}
}
return x;
}


stop();


Muchas Gracias

Etiquetas: flash, xml, buscadores, botones, clips
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:08.