Comunidad de diseño web y desarrollo en internet online

Ayuda con link desde Flash mediante XML

Citar            
MensajeEscrito el 09 May 2008 12:41 am
Saludos a todos, ojalá puedan ayudarme con esto. Les cuento el problema:

Resulta que tengo un flash que trabaja con un formato de arbol carpetas y archivos. Las carpetas vendrían a ser las categorías y los archivos son unos PDF para descargar. EL menu funciona OK, se muestra todo bien, pero me falta la función para que propiamente pueda cada uno de los archivos que aparecen ser descargados, ya que en este momento me los lista pero no me permite la descarga.

Para que lo puedan ver más claramente, les paso el código del Flash:

System.useCodePage=true;

// VARIABLES
gSeparacionX = _parent.disX;
gSeparacionY = _parent.disY;
gXML=_parent.mxml;
_parent.formato=new TextFormat();
_parent.formato.font=_parent.mfont;
_parent.formato.color=_parent.mcolor;
_parent.formato.size=_parent.mtam;

tip.swapDepths(5000);
menu=new XML();
menu.load(gXML);
menu.ignoreWhite = true;

texto="cargando xml...";
menu.onLoad = arbol;
_parent.con=0;
_parent.boton0.texto="cargando xml...";

function arbol (loaded) {
if (loaded == true) {
dibujaNodo(menu);
Renderiza();
} else {
texto="error cargando xml...";
}
_parent.total=_parent.con;
}

function buscaHijos(nodo){
var tot = 0;
for(var i=0;i<nodo.childNodes.length;i++)
tot += buscaHijos(nodo.childNodes[i])
return nodo.childNodes.length + tot;
}

function dibujaNodo(param,qPos){
_parent.boton0.duplicateMovieClip("boton"+_parent. con,_parent.con);
_parent["boton"+_parent.con]._x=qPos;
_parent["boton"+_parent.con].nodo=param;
_parent["boton"+_parent.con].texto=param.attributes.name;
_parent["boton"+_parent.con].enlace=param.attributes.link;
_parent["boton"+_parent.con].activo=param.attributes.activo;
if(param.attributes.activo eq 0){
_parent["boton"+_parent.con]._alpha=50;
}
_parent["boton"+ _parent.con].seVe = true;
if(param.hasChildNodes()){
_parent["boton"+_parent.con].hijillos=buscaHijos(param);
if((_parent.con eq 1) and (_parent.desp))
_parent["boton"+_parent.con].desplegado=true;
if(_parent.ima){
if(_parent.propios){
_parent["boton"+_parent.con].ima.gotoAndStop(param.attributes.icon);
}else{
_parent["boton"+_parent.con].ima.gotoAndStop("carpeta");
}
}else{
_parent["boton"+_parent.con].ima.gotoAndStop("no");
}
_parent["boton"+_parent.con].onRelease=function(){
this.desplegado=!(this.desplegado);
this.num=this._name.substring(5,8);
for(var x=Number(this.num)+1;x<=Number(this.hijillos)+Numb er(this.num);x++){
if((_parent["boton"+x]._x - _parent["boton"+this.num]._x) <= gSeparacionX)
_parent["boton"+x].seVe = this.desplegado;
}
Renderiza();
}
}else{
if(_parent.ima){
if(_parent.propios){
_parent["boton"+_parent.con].ima.gotoAndStop(param.attributes.icon);
}else{
_parent["boton"+_parent.con].ima.gotoAndStop("");
}
}else{
_parent["boton"+_parent.con].ima.gotoAndStop("no");
}
_parent["boton"+_parent.con].onRelease=function(){
this._parent._parent[(this._parent.func)](this.enlace);
}
}
_parent.con++;
for(var ii=0;ii<param.childNodes.length;ii++)
dibujaNodo(param.childNodes[ii],qPos+gSeparacionX);
}
_parent.boton0._visible = false;

function Renderiza(){
var qPos = 0;
for (var i = 1; i < _parent.con;i++)
_parent["boton" + i]._visible = false;
for (var i = 1; i < _parent.con;i++)
if(_parent["boton" + i].seVe){
_parent["boton" + i]._visible = true;
_parent["boton" + i]._y = qPos;
qPos += gSeparacionY;
if (!(_parent["boton" + i].desplegado))
i += _parent["boton" + i].hijillos;
}
}


Y luego, este es el del XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<menu name="Documentos para Descargar" icon="home">
<opcion name="servicios" icon="carpeta">
<opcion name="Aprendizaje por imitación" link="Aprendizaje por imitacion.pdf"></opcion>
<opcion name="php" link="php"></opcion>
<opcion name="xml" link="xml"></opcion>
<opcion name="flash" link="flash"></opcion>
</opcion>
<opcion name="portfolio" icon="carpeta">
<opcion name="pedrodelarosa" link="pedrodelarosa"></opcion>
<opcion name="enginesoft" link="enginesoft"></opcion>
<opcion name="areaempresarial" link="areaempresarial"></opcion>
<opcion name="gimanez & zuazo" link="gimanez&zuazo" icon="text"></opcion>
<opcion name="racingservices" link="racingservices" icon="text"></opcion>
<opcion name="videoping" link="videoping"></opcion>
<opcion name="96com" link="96com"></opcion>
<opcion name="videoguia" link="videoguia" icon="text"></opcion>
<opcion name="ingeniun" link="ingeniun"></opcion>
</opcion>
<opcion name="contacto" icon="carpeta">
<opcion name="[email protected]" link="[email protected]"></opcion>
</opcion>
</menu>

Muchas gracias de antemano.

Por Conic

3 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 09 May 2008 02:10 pm
La verdad agradecería si alguien me puediera hechar una mano con esto porque nada que lo consigo.

Gracias y saludos.

Por Conic

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 09 May 2008 06:27 pm
en tu función dibujaNodo, agrégale a los botones el evento onRelease:

Código :

function dibujaNodo(param,qPos){
 ...Todo tu código
     _parent["boton"+_parent.con].onRelease = function(){getURL(this.enlace)};

Así, al hacer click, tratará de acceder al link que colocaste en la proiedad "enlace".
Un consejo para próximas consultas:

  1. No coloques todo el código, trata de ser lo más preciso posible e incluir sólo el código que creas que es relevante. Así será más fácil que obtengas respuestas.
  2. Cuando escribas código, hazlo encerrándolo entre las etiquetas [*code] [*/code] (sin los asteriscos) para que sea más legible.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 09 May 2008 06:48 pm
The Fricky... muchas gracias por tu respuesta.

Te cuento que intenté colocar el código de esta manera en el flash:

Código :

function dibujaNodo(param,qPos){
   _parent.boton0.duplicateMovieClip(\"boton\"+_parent.con,_parent.con);
   _parent[\"boton\"+_parent.con]._x=qPos;
   _parent[\"boton\"+_parent.con].nodo=param;
   _parent[\"boton\"+_parent.con].texto=param.attributes.name;
   _parent[\"boton\"+_parent.con].enlace=param.attributes.link;
   _parent[\"boton\"+_parent.con].activo=param.attributes.activo;
   _parent[\"boton\"+_parent.con].onRelease = function(){getURL(this.enlace)};
   if(param.attributes.activo eq 0){
      _parent[\"boton\"+_parent.con]._alpha=50;
   }


Y a su vez en el XML coloqué lo siguiente:

Código :

<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
<menu name=\"Documentos para Descargar\" icon=\"home\">
   <opcion name=\"Gabinete Psicopedagógico\" icon=\"carpeta\">
      <opcion name=\"Aprendizaje por imitación\" link=\"Aprendizaje por imitacion.pdf\" enlace=\"http://www.google.com\"></opcion>
      <opcion name=\"El niño que no quiere acostarse\" link=\"El niño que no quiere acostarse.pdf\"></opcion>
      <opcion name=\"Juguetes\" link=\"Juguetes.pdf\"></opcion>
      <opcion name=\"flash\" link=\"flash\"></opcion>   
   </opcion>


No se si es que coloqué algo mal... te agradezco tu ayuda y gracias por tus comentarios... trataré de ir más al grano con las dudas y ser más claro...

Saludos.

Por Conic

3 de clabLevel



Genero:Masculino  

msie7

 

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