Comunidad de diseño web y desarrollo en internet online

hacer un buscador con flash desde un xml

Citar            
MensajeEscrito el 29 Jul 2011 03:26 pm
introduzco una palabra en un cuadro de texto y la busco en un xml. creo un moviclip por cada conicidencia que encuentro, pero cuando hago click sobre el moviclip, va siempre al mismo link.

que es lo que esta mal.

Les paso el codigo

este es el xml
<?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>
<item>
<titulo><![CDATA[antena]]></titulo>
<desc><![CDATA[antena varias]]></desc>
<tipo><![CDATA[antena]]></tipo>
<imagem><![CDATA[antena]]></imagem>
<link><![CDATA[10]]></link>
</item>
<item>
<titulo><![CDATA[DOMOS]]></titulo>
<desc><![CDATA[camara]]></desc>
<tipo><![CDATA[domo]]></tipo>
<imagem><![CDATA[domos camara]]></imagem>
<link><![CDATA[2]]></link>
</item>
<item>
<titulo><![CDATA[soluciones]]></titulo>
<desc><![CDATA[Soluciones varias]]></desc>
<tipo><![CDATA[Solucion]]></tipo>
<imagem><![CDATA[Soluciones]]></imagem>
<link><![CDATA[11]]></link>
</item>
<item>
<titulo><![CDATA[solucion]]></titulo>
<desc><![CDATA[Soluciones varias]]></desc>
<tipo><![CDATA[SOLUCION]]></tipo>
<imagem><![CDATA[SOLUCIONES]]></imagem>
<link><![CDATA[11]]></link>
</item>
<item>
<titulo><![CDATA[conectividad]]></titulo>
<desc><![CDATA[conectividad]]></desc>
<tipo><![CDATA[conectividad]]></tipo>
<imagem><![CDATA[conectividad]]></imagem>
<link><![CDATA[12]]></link>
</item>
<item>
<titulo><![CDATA[domos fijos]]></titulo>
<desc><![CDATA[domos_fijos]]></desc>
<tipo><![CDATA[domos fijo]]></tipo>
<imagem><![CDATA[DOMOS FIJOS]]></imagem>
<link><![CDATA[13]]></link>
</item>

<item>
<titulo><![CDATA[camaras fijas]]></titulo>
<desc><![CDATA[fija]]></desc>
<tipo><![CDATA[FIJAS]]></tipo>
<imagem><![CDATA[fijas]]></imagem>
<link><![CDATA[3]]></link>
</item>
<item>
<titulo><![CDATA[fijas]]></titulo>
<desc><![CDATA[fija]]></desc>
<tipo><![CDATA[FIJAS]]></tipo>
<imagem><![CDATA[CAMARAS FIJAS]]></imagem>
<link><![CDATA[3]]></link>
</item>
<item>
<titulo><![CDATA[modems routrs]]></titulo>
<desc><![CDATA[modems y routrs]]></desc>
<tipo><![CDATA[MODES]]></tipo>
<imagem><![CDATA[MODEMS]]></imagem>
<link><![CDATA[4]]></link>
</item>
<item>
<titulo><![CDATA[modems y routrs]]></titulo>
<desc><![CDATA[modems y routrs ]]></desc>
<tipo><![CDATA[routrs]]></tipo>
<imagem><![CDATA[routr]]></imagem>
<link><![CDATA[4]]></link>
</item>


<item>
<titulo><![CDATA[switchs]]></titulo>
<desc><![CDATA[switchs ]]></desc>
<tipo><![CDATA[SWITCH]]></tipo>
<imagem><![CDATA[SWITCHS]]></imagem>
<link><![CDATA[8]]></link>
</item>
<item>
<titulo><![CDATA[video servers]]></titulo>
<desc><![CDATA[video_servres]]></desc>
<tipo><![CDATA[VIDEO]]></tipo>
<imagem><![CDATA[SEVERS]]></imagem>
<link><![CDATA[9]]></link>
</item>
<item>
<titulo><![CDATA[video]]></titulo>
<desc><![CDATA[video servres]]></desc>
<tipo><![CDATA[VIDEO SERVRS]]></tipo>
<imagem><![CDATA[VIDEO]]></imagem>
<link><![CDATA[9]]></link>
</item>
<item>
<titulo><![CDATA[servers]]></titulo>
<desc><![CDATA[video_servres]]></desc>
<tipo><![CDATA[videos Servre]]></tipo>
<imagem><![CDATA[SERVES]]></imagem>
<link><![CDATA[9]]></link>
</item>
<item>
<titulo><![CDATA[SW]]></titulo>
<desc><![CDATA[sw]]></desc>
<tipo><![CDATA[SW]]></tipo>
<imagem><![CDATA[sw]]></imagem>
<link><![CDATA[7]]></link>
</item>
<item>
<titulo><![CDATA[domos rapidos]]></titulo>
<desc><![CDATA[domos_rapidos]]></desc>
<tipo><![CDATA[domos rapidos]]></tipo>
<imagem><![CDATA[domo rapido]]></imagem>
<link><![CDATA[14]]></link>
</item>
</menu>

y el codigo de flash es el siguiente:

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.html','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,resizable=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,resizable=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','nvr','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','ptz','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'))");
} else if (_root['bt'+i].link.text == '8'){
getURL("javascript:void(window.open('switchs.html','switchs','toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
} else if (_root['bt'+i].link.text == '9'){
getURL("javascript:void(window.open('video_servres.html','video','toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
} else if (_root['bt'+i].link.text == '10'){
getURL( "javascript:void(window.open('antena.html','ant','toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
}else if (_root['bt'+i].link.text == '11'){
getURL("javascript:void(window.open('soluciones.html','soluciones','toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
} else if (_root['bt'+i].link.text == '12') {
getURL( "javascript:void(window.open('conectividad.html','conec','toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
} else if (_root['bt'+i].link.text == '13') {
getURL( "javascript:void(window.open('domos_fijos.html','domos_fijos','toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
} else if (_root['bt'+i].link.text == '14') {
getURL( "javascript:void(window.open('domos_rapidos.html','domos_rapidos','toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
};

//getURL("javascript:void(window.open("+link+",by,'toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
//if (link = 2){

//URL='camara.html';}

//getURL(URL) ;

/////////--------
};



}
};
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

Por cruzl

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Jul 2011 08:54 pm
Basicamente sobreescribes la variable, la tienes que copiar al MC y luego usar en cada if

Código ActionScript :

root['bt'+i].BT_LINK.nr = i;
_root['bt'+i].BT_LINK.onRelease = function() {

if (_root['bt'+this.nr].link.text = 1) {
getURL("javascript:void(window.open('accesorios.html','ACCESORIOS','toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
}


Eso si ... un poco repetitivo el código, ¿no?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Ago 2011 01:25 pm

solisarg escribió:

Basicamente sobreescribes la variable, la tienes que copiar al MC y luego usar en cada if

Código ActionScript :

root['bt'+i].BT_LINK.nr = i;
_root['bt'+i].BT_LINK.onRelease = function() {

if (_root['bt'+this.nr].link.text = 1) {
getURL("javascript:void(window.open('accesorios.html','ACCESORIOS','toolbar=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0,width=460,height=640'))");
}


Eso si ... un poco repetitivo el código, ¿no?

Jorge


Si es muy repetitivo, pero estuve probando un monton de formas y ninguna me funciono, voy a probar lo que me comentas. Desde ya muchas Gracias

Por cruzl

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Ago 2011 01:27 pm
Igual no te preocupes, el método chino de programación incluye copiar y pegar hasta el infinito algo que funciona :)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Ago 2011 02:20 pm

solisarg escribió:

Igual no te preocupes, el método chino de programación incluye copiar y pegar hasta el infinito algo que funciona :)

Jorge


Jorge, sabes que me sigue entrando en el primer IF. Me estoy volviendo loco ya llevo una semana con esto.

Saludos

Por cruzl

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Ago 2011 02:24 pm
Mmm, mirando tu tupido código me parece que entendí algo mal y se me paso algo importante, prueba así>

Código ActionScript :

_root['bt'+i].BT_LINK.onRelease = function() {  
if (this.link.text == 1) { 
    getURL(....)
}


Modifica todas las condiciones siguiendo esa lógica

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Ago 2011 06:11 pm

solisarg escribió:

Mmm, mirando tu tupido código me parece que entendí algo mal y se me paso algo importante, prueba así>

Código ActionScript :

_root['bt'+i].BT_LINK.onRelease = function() {  
if (this.link.text == 1) { 
    getURL(....)
}


Modifica todas las condiciones siguiendo esa lógica

Jorge


Ya probe de esa forma y no entra en ningun IF, es como que no cumple ninguna condicion pero en el campo link.text que muestro por pantalla es el correcto pero cuando entra en la funcion del boton no pasa el valor.

Muchas Gracias

Por cruzl

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Ago 2011 06:16 pm
¿Trazaste los valores?

_root['bt'+i].BT_LINK.onRelease = function() {
trace("El texto es "+this.link.text)

Y como es String debería ser

if(this.link.text == "1")

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Ago 2011 06:42 pm

solisarg escribió:

¿Trazaste los valores?

_root['bt'+i].BT_LINK.onRelease = function() {
trace("El texto es "+this.link.text)

Y como es String debería ser

if(this.link.text == "1")

Jorge


Cuando pongo, trace("El texto es "+this.link.text) el resultado me da "El texto es undefined".

Y si lo tomo como string no entra en ningun caso.

Ya me debes odiar por lo molesto...

Muchas Gracias

Por cruzl

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Ago 2011 07:28 pm
Entonces _root['bt'+i].BT_LINK no tiene un campo de texto llamado link, verifícalo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Ago 2011 06:34 pm

solisarg escribió:

Entonces _root['bt'+i].BT_LINK no tiene un campo de texto llamado link, verifícalo

Jorge


Pero no le puedo pasar un valor a un campo de texto que esta dentro de un Boton (BT_LINK)

Gracias

Por cruzl

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Ago 2011 04:33 pm
Hola, mi pregunta no guarda relación con la duda de cruzl. Estoy aprendiendo a usar el código xml y me surge esta duda ya que estoy tratando de hacer una galería de fotos con audio, a partir de un archivo que bajé por internet. Entiendo como indicar la reproducción de un fondo musical durante toda la proyección de las fotos, pero cómo hago para que en cada foto se reproduzca un audio específico? Quizás hayan visto que algunos fotógrafos suben slideshow, y en determinadas fotos se reproduce un sonido del entrevistado.

Disculpen las molestias. Anexo el código a ver si pueden ayudarme. Muchas gracias

<album title="Yehaaa" description="Fotos de los mejores momentos de mi vida" lgPath="gallery/album1/large/" audio="gallery/album1/mp3/audio.mp3" tnPath="gallery/album1/thumbs/" tn="gallery/album1/thumbs/1.jpg">
<img src="1.jpg" caption="A redwood tree from California" title="Tree Title" />
<img src="2.jpg" />
<img src="3.jpg" />
<img src="4.jpg" />
<img src="5.jpg" />
<img src="6.jpg" />
<img src="7.jpg" />
<img src="8.jpg" />
<img src="9.jpg" />
<img src="10.jpg" />
<img src="11.jpg" />

Por camatheus

0 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 11 Ago 2011 05:35 pm
Abre un POST nuevo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.