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

Como hacer link dinámicos

Estas en el tema de Como hacer link dinámicos en el foro de Flash y Actionscript en Foros del Web. Tengo un tabla en mysql el cual contiene los link que debo cargar en un texto dinámico en el flash, es decir si aparecen nuevos ...
  #1 (permalink)  
Antiguo 03/07/2006, 12:02
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Pregunta Como hacer link dinámicos

Tengo un tabla en mysql el cual contiene los link que debo cargar en un texto dinámico en el flash, es decir si aparecen nuevos registros en esa tabla estos se reflejen en el flash, es algo como se hace en php:

<a href="<?php echo $row[0]; ?>" > </a>

Los link son todos hacia archivos .swf que se encuentran en el mismo sitio.
Esto lo necesito debido a que tengo que transforrmar un sitio flash estático en uno dinámico. Por ejemplo ..agregar un item mas a un botón y este a su vez tenga un link a un nuevo archivo .swf que se carga a un servidor, este link queda registrado en una tabla. Poco sé de flash dinámico y espero poder contar con su generosa ayuda.
he buscado en este sitio y no he encontrado lo que busco
A todos los que me puedan ayudar se lo agradezco de ante manos.
  #2 (permalink)  
Antiguo 03/07/2006, 12:06
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 14 años, 5 meses
Puntos: 406
Hola ciberpato:
Al campo de texto dinámico le tienes que activar el botón: Generar texto como HTML en el panel de propiedades de texto.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #3 (permalink)  
Antiguo 03/07/2006, 13:05
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Hola bandit, mi santo protector en flash, encantado de saludarte. Bueno te cuento yo soy experto en php y .NET, se diseñar un sitio estático en flash y se cargar una variable en un texto dinámico desde una tabla. Pero no se como y que comandos usar como el while() { . De tal manera que pueda cargar en una texto en la página flash un texto que permita linkear y que a su vez va ir aumentando a medida que se crean nuevos registros en la tabla de mysql. Si existe un ejemplo básico que haga esto sería de gran ayuda ya que como siempre los jefes piden los trabajos para ayer.
  #4 (permalink)  
Antiguo 03/07/2006, 18:40
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Bandit, tengo el siguiente scrip que genera un texto dinámico en el flash, pregunta, el href="botonera.swf" , ¿se comporta como un loadMovieNum, es decir se carga dentro del main.swf del cual se llama sin abrir otra página?

System.useCodepage=true;
var noticias_xml:XML = new XML();

noticias_xml.ignoreWhite = true;

noticias_xml.onLoad = function(ok){
if(ok) listar_noticias(this.firstChild.childNodes);
else trace('no se cargó correctamente');
}

noticias_xml.load('noticias.xml');

var estilo_noticia = new TextField.StyleSheet();
estilo_noticia .load('estilo.css');

listar_noticias = function(noticias:Array):Void{

with(noticias_mc.noticias_txt){
multiline = true; wordWrap = true; html = true; autoSize = true; selectable = true; styleSheet = estilo_noticia;
}
for(n=0;n<noticias.length;n++) {
noticias_mc.noticias_txt.htmlText += '<br/><p class="fecha">'+noticias [n].attributes.fecha+'</p>';
noticias_mc.noticias_txt.htmlText += '<p class="titulo"><a href="main.swf">'+noticias[n].attributes.titulo+'</a></p>';
noticias_mc.noticias_txt.htmlText += '<p class="descripcion">'+noticias[n].attributes.descripcion+'</p>';
noticias_mc.noticias_txt.htmlText += '<p>--------------------------------------------------------</p><br/>';
}

noticias_mc.setMask(mascara);

noticias_mc.onEnterFrame = function(){
this._y--;
if(this._y < mascara._y-this._height) this._y = mascara._y+mascara._height;
}
}
stop();

Porque la idea es que en flash como te explicaba anteriormente, pueda generar links en forma dinámica desde una tabla mysql, en mi caso lo carga desde un xml donde se tiene nombre del link y el archivo swf a cargar.
  #5 (permalink)  
Antiguo 04/07/2006, 10:21
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
nop,
href="botonera.swf"
cargará la película botonera.swf en una ventana del navegador

puedes hacer esto:
<a href="asfunction:nombreFuncion,parametro">enlace</a>

eso hará la llamada a la función: nombreFuncion pasándole el: parametro

y la función puede ser:
var cargarPeli:Function=function(ruta_swf:String):Void {
var contenedor:MovieClip = this;
contenedor.loadMovie(ruta_swf);
}

quedaría algo así:
<a href="asfunction:cargarPeli,noticia1.swf">cargar noticia 1</a>

...
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #6 (permalink)  
Antiguo 04/07/2006, 15:10
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Gracias por tu ayuda luistar, con lo indicado hice el codigo que ha continuación te muestro:

System.useCodepage=true;
var links_xml:XML = new XML();
links_xml.ignoreWhite = true;
links_xml.onLoad = function(ok){
if(ok) listar_links(this.firstChild.childNodes);
else trace('no se cargó correctamente');
}

links_xml.load('links.xml');
var estilo_link = new TextField.StyleSheet();
//cargamos la hoja de estilo
estilo_link .load('estilolink.css');

//---- listamos los link que nos llegue como parametro en forma de array----->
listar_links = function(links:Array):Void{
//modificamos las propiedades del campo de texto para que funcione como queremos
with(link_mc.link_txt){
multiline = true; wordWrap = true; html = true; autoSize = true; selectable = true; styleSheet = estilo_link;
}

for(n=0;n<links.length;n++) {
//link_mc.link_txt.htmlText += '<p class="link"><a href="http://www.unerg.edu.ve/ver_noti_todo2.php?numero='+links[n].attributes.link+'">'+links[n].attributes.boton+'</a></p>';
link_mc.link_txt.htmlText += '<p class="link"><a href="asfunction:cargarPeli,'+links[n].attributes.link+'">'+links[n].attributes.boton+'</a></p>';
link_mc.link_txt.htmlText += '<p>--------------</p><br/>';
}
//enmascaramos los link
link_mc.setMask(mascara);

}

var cargarPeli:Function=function(ruta_swf:String):Void {
var contenedor:MovieClip = this;
contenedor.loadMovie(ruta_swf);
}

stop();

El parámetro me llega sin problemas ya que se despliega dentro del link_txt, pero no me funciona el link al hacer click sobre href, no pasa nada.
  #7 (permalink)  
Antiguo 04/07/2006, 16:03
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
los procesos de la función cargarPeli sólo son un ejemplo
tienes que definir dónde deseas cargar la pelicula

prueba con esto:

var cargarPeli:Function=function(ruta_swf:String):Void {
trace(ruta_swf);
}

si te muestra la ruta, entonces si funciona

lo que tienes que hacer es identificar correctamente al movieClip dónde vas a cargar los otros swf.
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #8 (permalink)  
Antiguo 04/07/2006, 16:45
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
luistar, perdona mi ignorancia, el trace del flash donde me lo muestra, debo probar con el depurador?? otra cosa todos mis swf estan en la raiz del sitio, como puedo identificar correctamente al movieClip ????
  #9 (permalink)  
Antiguo 04/07/2006, 17:15
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Lo probé con el depurador, una vez que los link se cargaron seleccioné
trace(ruta_swf); algun dato en la ventana y ni siquiera se abre para visualizar los datos por supuesto que esto lo hago una vez clikeo algun link, en cambio si coloco un trace(links[n].attributes.link); dentro del for me muestra los archivos.swf. Me da la impresión que no se gatilla al hacer click sobre el vínculo
  #10 (permalink)  
Antiguo 04/07/2006, 19:32
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
luistar, ya solucioné el problema por el cual no me funcionaba el llamado a la funcion, lo que hice fué agregar _root:

<a href="asfunction:_root.cargarPeli,'+links[n].attributes.link+'">'+links[n].attributes.boton+'</a>

He dado un gran paso gracias a tu colaboración. Otra pregunta, yo tengo armado varios swf. Tengo por ejemplo tengo el main.swf y botonera.swf. el primero contiene la película princripal el segundo solo carga los botones en el main.swf, algo asi como cuando pongo en un frame del main.swf el loadMovieNum('botonera.swf',10) y coloca la botonera.swf en el main.swf en un lugar específico. En el ejemplo que he usado para aprender, es posible lograr este comportamiento modificando la funcion cargarPeli??
  #11 (permalink)  
Antiguo 04/07/2006, 21:19
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Parece que me estoy entusiasmando con el flash, ya que me estoy respondiendo las preguntas, bueno así se empieza. La respuesta a la última pregunta queda de la siguiente manera:

var cargarPeli = function(ruta_swf:String):Void {

loadMovieNum(ruta_swf,10);
//trace(" RUTA > "+ruta_swf);
}

Este tema ha quedado bastante bien armado. Gracias a todos los que participaron....Hasta pronto
  #12 (permalink)  
Antiguo 05/07/2006, 08:38
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
__________________________
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #13 (permalink)  
Antiguo 05/07/2006, 18:18
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Aquí vuelvo a la carga de nuevo, me mantengo en este tema ya que tiene relación con lo que he estado aprendiendo anteriormente. Como han visto al clikear sobre un item lammo una a una funcion antes de cargar un determinado archivo o ir a un fotograma dentro del mismo. La pregunta es ¿ como en flash puedo cargar una variable y pueda ser usada en cualquier parte de la película.... osea ....como en php declara una variable global $var;. Lo anterior es importante para lo que estoy desarrollando ya que esta variable me va a indicar que hacer en un determinado fotograma.
  #14 (permalink)  
Antiguo 06/07/2006, 08:59
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
en ActionScript es parecido, tienes que usar _global:

_global.algo = 'nada';

_global.hola = function():Void{
trace('hola');
}

la variable algo y la funcion hola son globales

___
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #15 (permalink)  
Antiguo 28/07/2006, 15:53
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Hola a todos, continuando con el mismo ejemplo del comienzo, en el cual vemos que se carga un texto dinámico creado como clip de película en la biblioteca con nombre de intancia link_txt luego lo jalo al escenario y lo coloco encima de la mascara, y lo pongo un nombre de instancia link_mc que es una instancia de link_txt. El video clip ce link_txt se llama link nombre que aparece en la biblioteca. Todo bien hasta acá, el problema que tengo es que no he podido enganchar el UIScrollBar. Lo último que hice, me metí al video clip link y jalé acá el Scroll colocando como instancia link_txt que es la instancia de link, en parámetro en _targetInstanceName le puse link_txt que esto es lo mejor que logrado, ya que al probar la película aparece el texto y tambien el uiscrollbar activado, es decir se ve la barra y los botones de desplazamiento e incluso mas la barra se puede desplazar, tu pensaras que estas listo, no.... al mover la barra no se desplaza el texto cargado... no he podido entender a que se debe.... please necesito vuestra ayuda pues tengo que tener esto funcionando el próximo lunes y he perdido n tiempo tratando de enganchar este componente. .... a todos gracias
  #16 (permalink)  
Antiguo 28/07/2006, 17:08
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Agrego la siguiente observación por si sirve de ayuda en la busqueda del problema. Cuando pongo texto en duro osea copio un texto y lo pego en el texto dinámico link funciona el scroll, pero cuando cargo un texto xml externo mediante el programa arriba indicado, aparece el scroll como si estuviera enganchado, muevo la barra y no se desplaza el texto.... gracias
  #17 (permalink)  
Antiguo 30/07/2006, 18:08
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Bueno, como nadie me dio pelota, les voy a dejar la solución a mi problema con el UIScrollBar, la solución fué crear todo mediante programa, ya que de la otra manera me fué imposible enganchar este componente cuando cargaba el texto externamente:

listar_archivo = function(links:Array):Void{

for(n=0;n<links.length;n++) {
cadena+=link[n].attributes.contenido;
//trace(link[n].attributes.titulo);
}
var my_fmt:TextFormat = new TextFormat();
//my_fmt.blockIndent = 20;
my_fmt.color = 0xFFFFFF;


this.createTextField("miTexto",this.getNextHighest Depth(),475,160,245,160);
miTexto.multiline=true;
miTexto.wordWrap = true;
miTexto.text= cadena;
miTexto.html=true;
miTexto.borderColor=0x666666;
miTexto.border= true;
miTexto.setTextFormat(my_fmt);
miTexto.styleSheet = estilo_link;
this.createClassObject(mx.controls.UIScrollBar,"mi Scroll",this.getNextHighestDepth());
miScroll.setScrollTarget(miTexto);
miScroll.setSize(16, miTexto._height);
miScroll.move(miTexto._x + miTexto._width, miTexto._y);
}

Ahora Teniendo esto a la vista que funciona perfectamente, tengo el siguiente problema, cuando me desplazo al siguiente fotograma en el cual
cargo otra película manteniendo el texto que se cargo en el anterior sin problemas. Ahora en este siguiente fotograma existe un botón que devuelve al fotograma anterior, que es donde se carga el texto. El programa funciona bien salvo que me cambia el color del texto que era blanco a negro y me deja en borde superior izquierdo un UIScrollBar solitario. Me da la impresión que debo descargar antes de volver a ejecutarlo..... alguien me puede decir que me puede estar pasando y como solucionarlo....de ante manos agradezco su colaboración.
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 06:10.