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

cargar clips según la ID

Estas en el tema de cargar clips según la ID en el foro de Flash y Actionscript en Foros del Web. A ver si me podeis ayudar... Desde un archivo php llamo unas variables: id, categoria, nombre, xmapa y ymapa, que se cargan segun la id. ...
  #1 (permalink)  
Antiguo 21/07/2006, 03:12
 
Fecha de Ingreso: septiembre-2003
Mensajes: 68
Antigüedad: 20 años, 6 meses
Puntos: 0
cargar clips según la ID

A ver si me podeis ayudar...
Desde un archivo php llamo unas variables: id, categoria, nombre, xmapa y ymapa, que se cargan segun la id. Ej.: id1=1&categoria1=hotel&nombre1......

Entonces con un for quiero cargar los distintos clips (segun la categoria serà un clip u otro de la biblioteca) y que se coloquen en el escenario segun su xmapa y ymapa, pero hay algo que tengo mal y no encuentro el que... A continuación on pongo el código a ver si alguien puede darme una manita:

Código:
for(var n = 1 ; n < this.total + 1; n++){ 
            if (categoria+id == "restaurant"){ 
               var res = _root.attachMovie("restaurant", "restaurant" + n, n + 1 ,{_x:(this.xmapa+id) , _y: (this.ymapa+id)}); 
               res.nom.htmlText=n; 
               res.id = this["id" + n]; 
               }else 
            if (categoria+id == "hotel"){ 
               var res = _root.attachMovie("hotel", "hotel" + n, n + 1 ,{_x:(this.xmapa+id) , _y: (this.ymapa+id)}); 
               res.nom.htmlText=n; 
               res.id = this["id" + n]; 
            } 
         }
Me gustaría que segun la variable categoria+id se cargaran unos clips u otros de la libreria... a ver si alguien puede ayudarme.

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 21/07/2006, 08:32
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
bueno haber con tan poco codigo y por lo que has explicado, mal no veo el bucle ....
Supongo que el bucle se encuentra dentro de una funcion en la qual recibe la variable id desde php no? ... no se si lo has mirado, pero comprueba haber si dentro del bucle la id la recibes bien
Código:
res.nom.htmlText=this.id;
con esto deberia salirte el num. de id sino crea un campo de texto y prueba ...
Mirate bien el condicional, sino te hace bien el attach podria ser error también de esto, usa el trace para probar bien las cosas si las recibe o no.
Otra cosa: las cordenadas donde cargas el clip son correctas??
{_x:(this.xmapa+id) , _y: (this.ymapa+id)} -> cxmapa y ymapa supongo que es una funcion que te da unas coordenadas y la id le suma el num enviado por php supongo ....Es que con tan pocos datos que das es dificil saber que puede fallarte...

Haber esto son conjeturas ... no se que es lo que has probado, asi que tampoco es que te pueda ayudar mucho.
Lo poco que te he dicho espero que te sirva de algo
Saludos!!
  #3 (permalink)  
Antiguo 21/07/2006, 08:55
 
Fecha de Ingreso: septiembre-2003
Mensajes: 68
Antigüedad: 20 años, 6 meses
Puntos: 0
gracias zicard por contestar! ya he probado lo que me has dicho i no detecta la id pero no porque no la reciba sinó porque el if ya no está bien, pero no se como solucionarlo.
A ver si me explico, esq por aquuí cuesta un poco: del php recibo lo siguiente:
Código:
&id1=1&categoria1=restaurant&nom1=El gallo&xmapa1=10&ymapa1=10&id2=2&categoria2=hotel&nom2=El cisne&xmapa2=50&ymapa2=100&
de manera que las variables se llaman por sus nombres más un número ascendente, por ejemplo id1, categoria1, id2, categoria2, etc. Lo que yo quiero hacer, en flash, es que el bucle me detecte las variables categoria+i (este número ascendente) y me cargue un clip u otro en el escenario segun el valor de las variables y en la posición de xmapa1 o xmapa3,4,5, etc...

Espero haberme explicado un poco mejor... Si alguien puede ayudarme le estaré agradecido.

Muchas gracias de antemano
  #4 (permalink)  
Antiguo 21/07/2006, 09:54
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Creo haberlo entendido mejor .... bueno por lo que tu quieres quizas seria mejor que usaras un objeto XML, por ejemplo:
Código:
var mapa:XML = new XML();
mapa.ignoreWhite = true;
//Se inicia el proceso de parseo del XML
var parsea = function (exit) {
	if (exit) {
                //se crea dentro de mapa_mc un clip donde colocaremos lo que elijamos del xml
		mapa_mc.createEmptyMovieClip("selecmap", 11);
		//Se inicia el bucle para hacer una buskeda en todos los campos del XML
		for (i=0; i<this.firstChild.childNodes.length; i++) {
			for (j=0; j<this.firstChild.childNodes[i].childNodes.length; j++) {
				mapa_mc.selecmap["boton"+bot].semilla._x = menufoto.selecfoto["boton"+bot].semilla._y=1;
				mapa_mc.selecmap["boton"+bot]._x = bot*(menufoto.selecfoto["boton"+bot]._width+separacion);
				mapa_mc.selecmap["boton"+bot].nombre = this.firstChild.childNodes[i].attributes.nom;
				mapa_mc.selecmap["boton"+bot].id = this.firstChild.childNodes[i].childNodes[j].attributes.id;
				mapa_mc.selecmap["boton"+bot].cliente = this.firstChild.childNodes[i].childNodes[j].attributes.client;
				bot++;
}}}
Es un codigo de ejemplo de XML parseado en flash, aqui te pondo un archivo XML:
Código:
<mapa>

  <mapes id="1">
    <datos nom="El gallo" client="" categoria="restarurant" xmapa="10" ymapa="10" />
  </mapes>

  <mapes id="2">
    <datos nom="El cisne" client="" categoria="hotel" xmapa="50" ymapa="100" />
  </mapes>

</mapa>
El codigo no te funcionará claro esta porque lo he modificado un poquito para que veas la ida solo, nada más.
Este ejemplo te separa por ID y no hace falta que pongas categoria1, si quieres eso se lo puedes añadir en flash con "this.loquesea+n" n siendo el bucle por defecto 1 .... No se si te servira pero vamos creo que es más facil de organizar, y no tienes que mirar con el if, si la variable X == Y, no se si me explico y con php es facil de crear un xml, al fin i al cabo es como crear un txt
espero que esto te ayude.
Se que es modificar gran parte de tu codigo pero creo que te irá mejor.
Saludos!!
  #5 (permalink)  
Antiguo 21/07/2006, 10:25
 
Fecha de Ingreso: septiembre-2003
Mensajes: 68
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias zicard otra vez por la respuesta! El problema esq tengo que hacerlo con php, no tengo elección y no puedo crear archivos xml... sabrías como podría hacerlo? o alguna pista que me ayude?

gracias otra vez!
  #6 (permalink)  
Antiguo 21/07/2006, 10:53
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Necesitas escribir un archivo con php? o simplemente haces un
echo ="loke sea";
porke si es asi ... con php se puede hacer perfectamente, aunque =mente tambien se puede escribir .xml con php, lo que no se porke nunca lo he necesitado :p, pero vamos con php haces un echo en formato xml
claro k no se es como lo cargas con flash, supongo que con flash haces una llamada a php y php le devuelve como tu me lo has puesto...
No se si me he explicado ... en cuanto ha como hacer un xml con php es muy fácil hay la tira de manuales en internet, te pondria un ejemplo pero ahora en el trabajo no tengo ninguno ....
Saludos!!
  #7 (permalink)  
Antiguo 21/07/2006, 11:02
 
Fecha de Ingreso: septiembre-2003
Mensajes: 68
Antigüedad: 20 años, 6 meses
Puntos: 0
Zicard ya está solucionado! Lo conseguí jeje. En el bucle tenia que guardar las variables:
Código:
categoria = this["categoria"+n];
xmapa = this["xmapa"+n];
Ymapa = this["ymapa"+n];
nom = this["nom"+n];
Muchas gracias de todas formas!
  #8 (permalink)  
Antiguo 21/07/2006, 11:10
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
feliciades ... al final siempre son pequeñeces
me alegro ... suerte!!
  #9 (permalink)  
Antiguo 23/07/2006, 15:29
 
Fecha de Ingreso: septiembre-2003
Mensajes: 68
Antigüedad: 20 años, 6 meses
Puntos: 0
bueno... ahora tengo otro problemilla... no sabia si escribir un nuevo tema o continuar aquí...
Una vez se me cargan todos los clips, quiero que al hacer click sobre ellos (onRelease), me carguen otras variables dentro de ellos... Pero no hay manera. la función que le asigno al clip es:
Código:
res.onRelease = function(){
						this.obtenirDetall(id);
					}
y luego la función para obtener los datos es la siguiente:
Código:
obtenirDetall=function(id){
	var detall_poi=new LoadVars();
	detall_poi.id=id;
	detall_poi.onLoad=mostrarDetall;
	detall_poi.sendAndLoad("http://localhost/detall_poi.php",detall_poi,"POST");
}
Y luego para mostrar los datos la siguiente función:
Código:
mostrarDetall=function(exito){
	if (exito){
		if (this.output=="ok"){
			adresa_txt.htmlText = this.adresa;
		}else {
			detalls.htmlText="The following error has taken place: <b>"+this.msg+"</b>";
		}
	} else {
		detalls.htmlText="Error when loading the data of the project";
	}
}
Quiero que me cargue la variable "adresa" dentro del campo de texto "adresa_txt", que hay dentro los clips que creo con el bucle, solamente cuando le hago clip sobre cada clip... He conseguido hacerlo, si el campo de texto esta fuera de los clips o sea en _root, pero cuando lo tengo dentro de un clip no lo consigo... a ver si alguien sabría como hacerlo... he probado de todo y sé que será una tontería pero ya no se que más probar

gracias de antemano
  #10 (permalink)  
Antiguo 24/07/2006, 09:10
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Buenas de nuevo no quiero se pesadito pero para lo que pides es mejor que uses un xml pienso yo, lo metes todo lo que necesitas hay y cuando flash lo lee tu puedes decidir que cuando aprietes (boton, movieclip, etc.) te aparezca adressa, y como ya lo cargastes al principio, no necesitarias de enviar i recibir las variables de nuevo... mirate algun manual de XML y flash.

Porque para mi lo que haces es liarte tu mismo un poco, si de una id=x ya cargas todos sus datos, adressa=x, nom=x, categoria=x, ymapa=x, etc.. no te es necesario volver a llamar a un php otra vez para que te devuelva un resultado que ya podrias tener cargado anteriormente...

Código:
menufoto.selecfoto["boton"+bot].onRollOver = function() {
	this.semilla.onEnterFrame = function() {
		if (this._xscale<109) {
			this._xscale = this._yscale += 3;
		}
	};
	info_txt.htmlText = "<b>"+this.nombre+"</b>";
	info_txt.htmlText += "<b>Client: </b>"+this.cliente;
	info_txt.htmlText += "<b>Disseny: </b>"+this.impresion;
	info_txt.htmlText += "<b>Identitat: </b>"+this.paper;
	info_txt.htmlText += "<b>Any: </b>"+this.any;
	//muestra la cantidad de tarjetas que hay y en cual estamos
	cant_txt.htmlText = "<b>Logotips i/o imatges corporatives: "+this.id+" de "+bot+"</b>";
	info_txt.setTextFormat(infoLogo_fmt);
	cant_txt.setTextFormat(logos_fmt);				
};
Este es un codigo que tengo yo dentro de un for de un objeto xml, cuando paso por encima, aparecen los datos que yo quiero mostrar, los cuales he definido anteriormente con xml
Espero que te sirva.
Saludos
  #11 (permalink)  
Antiguo 27/07/2006, 01:56
 
Fecha de Ingreso: septiembre-2003
Mensajes: 68
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias zicard por la respuesta de nuevo!
Si ya me imagino que en xml lo podria hacer, pero en este caso tengo que hacerlo solamente con php... es el requisito jeje pero bueno seguiré mirando y probando porque muy bien tampoco sé porque no me funciona. si lo supiera seguramente podria solucionarlo rapido pero no se que passa
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 13:42.