Cristalab

Ayuda con link desde Flash mediante XML

   Foros de discusión -> Flash y Datos, Remoting, WebORB y AMFPHP
Mensaje Autor
Mensaje Publicado: Vie May 09, 2008 12:41 am     Citar   msie 
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="ingeniun@ingeniun.com" link="ingeniun@ingeniun.com"></opcion>
</opcion>
</menu>

Muchas gracias de antemano.
 _________________
CoNiC

Conic


clabLevel: 1 Genero:Masculino



MP         
Volver arriba
Mensaje Publicado: Vie May 09, 2008 2:10 pm     Citar   msie 
La verdad agradecería si alguien me puediera hechar una mano con esto porque nada que lo consigo.

Gracias y saludos.
 _________________
CoNiC

Conic


clabLevel: 1 Genero:Masculino



MP         
Volver arriba
Mensaje Publicado: Vie May 09, 2008 6:27 pm     Citar   firefox 
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.
 _________________
Se decente, no uses loadMovie...
Nunca maestro, siempre aprendiz...

The Fricky!

Premio_Secretos
clabLevel: 1683
Piccola Venezia...

3 Tips

MP Email Web     Google Talk  MSN Messenger  
Volver arriba
Mensaje Publicado: Vie May 09, 2008 6:48 pm     Citar   msie 
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.
 _________________
CoNiC

Conic


clabLevel: 1 Genero:Masculino



MP         
Volver arriba
Responder al tema    Foros de discusión -> Flash y Datos, Remoting, WebORB y AMFPHP Todas las horas son GMT
Página 1 de 1

Respuesta Rapida

  Citar el ultimo mensaje
Adjuntar tu firma

Mostrar mensajes de anteriores:
  

 


Cristalab BloodBerry Style © 2006 Cristalab
Powered by phpBB © 2001, 2002 phpBB Group