Foros del Web » Creando para Internet » Diseño web »

No-recarga de un menú flash en una web modular

Estas en el tema de No-recarga de un menú flash en una web modular en el foro de Diseño web en Foros del Web. Hola, suelo consultar bastante este foro sobre todo por enlaces desde Google, pero sin embargo nunca había llegado a escribir hasta ahora. En estos momentos ...
  #1 (permalink)  
Antiguo 25/02/2009, 11:27
 
Fecha de Ingreso: febrero-2009
Mensajes: 35
Antigüedad: 8 años, 9 meses
Puntos: 0
No-recarga de un menú flash en una web modular

Hola, suelo consultar bastante este foro sobre todo por enlaces desde Google, pero sin embargo nunca había llegado a escribir hasta ahora.

En estos momentos estoy desarrollando una web modular en php con sus diferentes módulos, layouts,... y sin problema. A cada página se accede por una url del tipo "mod?=loquesea". Sin embargo quería agregar ahora un menú en flash de una plantilla de "Template Monsters", y resulta que cada vez que accedo a una u otra sección, se me recarga el menú de nuevo y no se queda señalizado el lugar en donde nos encontramos dentro del web.

Si por ejemplo ejecuto el archivo html que da como salida macromedia flash no hay ningun problema, pero el problema es al intentar integrar dicho menú a la estructura modular: la cosa cambia.

Quisiera saber cual sería la mejor forma de solucionar este problema. Una opción podría ser un frame, pero hoy por hoy es una estructura muy anticuada. Otra podría ser código en javascript, pero lo he intentado y tampoco he podido.

¿Que me recomiendan?

Saludos
  #2 (permalink)  
Antiguo 25/02/2009, 11:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.741
Antigüedad: 9 años, 4 meses
Puntos: 2113
Respuesta: No-recarga de un menú flash en una web modular

Cuando se recarga la pagina es logico que se recargue tambien el flash, a menos que estes usando AJAX para reemplazar el contenido de un div, cuyo funcionamiento es similar al de los frames, con todo y la falta de efectividad para ser indexado por motores de busqueda a menos que crees metodos alternos para llegar a cada pagina y que se traduce en doble trabajo.

Ahora, tal vez podrias preguntar en el subforo de http://www.forosdelweb.com/f16/ como obtener dentro de tu animacion el boton que debe estar resaltado, de acuerdo al modulo cargado en tu web.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 25/02/2009, 12:09
 
Fecha de Ingreso: febrero-2009
Mensajes: 35
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: No-recarga de un menú flash en una web modular

Supongo que te vas a algún tema de este estilo:

miguelmanchego.com/2009/recargar-texto-automaticamente-jquery-ajax/


Sobre el tema de los botones, creo que está controlado. para identificar a uno u otro según sección, se emplean llamadas del tipo:

archivo.swf?button=1

Gracias.
  #4 (permalink)  
Antiguo 25/02/2009, 13:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.741
Antigüedad: 9 años, 4 meses
Puntos: 2113
Respuesta: No-recarga de un menú flash en una web modular

Si, esa opcion de recargar texto podria serte util, no lo se, uso muy poco AJAX y nunca lo he aplicado desde FLASH, por lo que no se si se pueda.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 07/03/2009, 04:02
 
Fecha de Ingreso: febrero-2009
Mensajes: 35
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: No-recarga de un menú flash en una web modular

Bueno, ya logré hace unos días solucionar el problema, dejo la solución por si puede servir a algún usuario más:


Lo primero se emplea el siguiente archivo .js (javascript / ajax)


Código:
	//xmlhttp.js
	
	//Function to create an XMLHttp Object.
	function getxmlhttp (){
		//Create a boolean variable to check for a valid microsoft active X instance.
		var xmlhttp = false;
		
		//Check if we are using internet explorer.
		try {
			//If the javascript version is greater than 5.
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			//If not, then use the older active x object.
			try {
				//If we are using internet explorer.
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				//Else we must be using a non-internet explorer browser.
				xmlhttp = false;
			}
		}
		
		//If we are using a non-internet explorer browser, create a javascript instance of the object.
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
			xmlhttp = new XMLHttpRequest();
		}
		
		return xmlhttp;
	}
	
	//Function to process an XMLHttpRequest.
	function processajax (serverPage, obj, getOrPost, str){
		//Get an XMLHttpRequest object for use.
		xmlhttp = getxmlhttp ();
		if (getOrPost == "get"){
			xmlhttp.open("GET", serverPage);
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					document.getElementById(obj).innerHTML = xmlhttp.responseText;
				}
			}
			xmlhttp.send(null);
		} else {
			xmlhttp.open("POST", serverPage, true);
			xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					document.getElementById(obj).innerHTML = xmlhttp.responseText;
				}
			}
			xmlhttp.send(str);
		}
	}
Evidentemente en el archivo html/php principal includes el fichero:

Código HTML:
<script type="text/javascript" src="xmlhttp.js"></script
Y finalmente realizamos cada una de las llamadas:

Código HTML:
<a href="index.html?page=X" onclick="processajax ('pageX.html','loquesea','get',''); return false;">Page X</a> 
En la definición del archivo inicial, al establecer los diferentes <div>, hay que añadir un id="loquesea" para identificar la parte que sólo queremos recargar.
  #6 (permalink)  
Antiguo 07/03/2009, 04:06
 
Fecha de Ingreso: febrero-2009
Mensajes: 35
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: No-recarga de un menú flash en una web modular

Y finalmente el código para realizar llamadas desde los botones flash:

on (press) {
getURL("javascript:processajax('pageX.html','loque sea','get','');
}

En mi caso me compliqué un poco más la vida porque he empleado un sistema modular con layouts, módulos,... pero el principio es el mismo.

Saludos y gracias Triby por haberme orientado un poco a encontrar mejor la solució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 12:25.