Comunidad de diseño web y desarrollo en internet online

ir a una URL sin pulsar un botón

Citar            
MensajeEscrito el 31 Dic 2008 12:09 pm
Hola chicos, sigo con el problema. Pueden ayudarme, por favor? Después de un pase de img, necesito que se abra una URL, es decir:

Código :

var fondoLoop = new LoopIMG(this);
fondoLoop.setPosicion(26, 125);
fondoLoop.push("phot/fot2.swf");
fondoLoop.push("phot/fot3.swf");
fondoLoop.push("phot/fot4.swf");
fondoLoop.push("phot/fot5.swf");
fondoLoop.push("phot/fot6.swf");
fondoLoop.push("phot/fot7.swf");
fondoLoop.push("phot/fot8.swf");
fondoLoop.push("phot/fot9.swf");
fondoLoop.push("phot/fot10.swf");
fondoLoop.push("phot/fot11.swf");
fondoLoop.push("phot/fot12.swf");
fondoLoop.push("phot/fot13.swf");
fondoLoop.push("phot/fot14.swf");
fondoLoop.push("phot/fot15.swf");
fondoLoop.setTiempo(4000);
fondoLoop.start();
//if (fondoLoop == fot15) {
//   fondoLoop.stop();
   getURL(http://www.cristalab.com, “_self”);
//}
if (_root.currentframe == _root.totalframes) {
   _root.gotoAndStop(1);
} else {
   _root.getURL("http://www.cristalab.com", "_self");
}


Ninguna de las dos me funciona. Es más, ni me muestra el pase de fotos. Por favor, alguna sugerencia? no los molesto m´s, les prometo... por fa!!!!!

Por al_di

65 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 31 Dic 2008 02:32 pm
mmm tu codigo si me funciona, pero en el primer getURL que tienes corrigele las comillas en la URL:

Código ActionScript :

getURL("http://www.cristalab.com");


No es necesario el _self si estas redireccionando en la misma ventana, ya es _self por defecto.

Y el segundo getURL no es necesario el _root

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 31 Dic 2008 02:50 pm
Drarok, a mí no me funciona porque ni siquiera me abre la secuencia de fotos. si quito el
"if (fondoLoop == fot15) {
fondoLoop.stop();
getURL(http://www.cristalab.com", “_self”);
}
No hay problemsa, todo funciona pero no me lleva a ninguna parte. ¿podrías decirme ´qué código pondrías tú para que, una vez que pasen las 15 fotos, este LoopIMG se pare y me abra una URL? Te lo ruego me urge. Gracias desde ya

Por al_di

65 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 31 Dic 2008 03:03 pm
Ah yo solo habia probado el mismo ejemplo que pusiste, pero que se supone que es new LoopIMG?? deberia ser un array? y porque le pones fondoLoop.setPosicion??? porque pones el setPosicion en español?? :? es una clase propia con sus metodos o que?

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 31 Dic 2008 03:11 pm
Mira una cosa, primero trata de ver la data que estas devolviendo debajo del fondoLoop.start(); tu tienes un IF que comparas con una palabra? si es palabra fot15 debe estar entre comillas, asi "fot15" no se realmente a que se refiere el fot15, a lo que voy es que antes del if haa un trace

Código ActionScript :

trace(fondoLoop);

Y mira que te devuelve porque contra eso estas haciendo una condicion, debes ver que es lo que te esta devolviendo, quizas te manda un undefined y por eso no entra a la condicion.

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 31 Dic 2008 03:21 pm
Drarok, LoopIMG es una clase, o sea un LoopIMG.as aparte, externo y en el fla principal sólo lleva el código que edité. No sé cómo cuernos detener el loop y hacer que una vez terminada la secuencia de fotos, me abra una URL. Debe ser una solución sencilla, pero yo no la puedo sacar por más intentos que haga. Te envío el .as:

Código :

class LoopIMG01 {
   private var ruta:MovieClip;
   private var listaFotos:Array;
   private var tiempo:Number;
   private var contenedor:MovieClip;
   private var paseDeFotos:Number;
   private var foto:Number;
   //-------------------------
   public function LoopIMG01(fotos) {
      ruta = fotos;
      contenedor = ruta.createEmptyMovieClip("contenedor1", ruta.getNextHighestDepth());
      contenedor.createEmptyMovieClip("contenedor1", contenedor.getNextHighestDepth());
      contenedor.createEmptyMovieClip("contenedor2", contenedor.getNextHighestDepth());
      listaFotos = new Array();
      setTiempo(4000);
      foto = 0;
      //
      contenedor.precarga = new MovieClipLoader();
      contenedor.listener = new Object();
      contenedor.precarga.addListener(contenedor.listener);
      contenedor.listener.onLoadComplete = function(cont:MovieClip) {
         cont.onEnterFrame = function() {
            if (this._alpha<100) {
               this._alpha += 10;
            } else {
               delete this.onEnterFrame;
            }
         };
      };
   }
   public function setTiempo(segundos) {
      tiempo = segundos;
   }
   public function setPosicion(queX, queY) {
      contenedor._x = 26;
      contenedor._y = 125;
   }
   public function start() {
      contenedor.contenedor2._alpha = 0;
      contenedor.precarga.loadClip(listaFotos[foto], contenedor.contenedor2);
      paseDeFotos = setInterval(this, "SiguienteImagen", tiempo);
   }
   public function stop() {
      clearInterval(paseDeFotos);
   }
   public function push(queURL) {
      listaFotos.push(queURL);
   }
   //--------------------
   private function SiguienteImagen() {
      (foto<(listaFotos.length-1)) ? foto++ : foto=0;
      var cont:MovieClip = contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-2);
      cont.swapDepths(contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-1));
      cont._alpha = 0;
      contenedor.precarga.loadClip(listaFotos[foto], cont);
   }
}


Entiendes ahora? desde el fla principal se llama a esta clase. En dónde y cómo puedo hacer para que al final de las 15 fotos me abra una URL? Por favcor, estoy hace más de 4 días con el mismo tema y no lo puedo sacar. Ten misericordia de mí!!!

Por al_di

65 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 31 Dic 2008 03:51 pm
OK ya te entendi, pues debes crear una funcion que mm en este caso te diga cuantos items tienes cargados, en el archivo .as agrega esta funcion:

Código ActionScript :

public function obtenerCantidad() {
      return listaFotos.length;
   }


Y en ese IF que tienes, preguntas:

Código ActionScript :

if(fondoLoop.obtenerCantidad() == 14 ) {
....


Esa nueva funcion te devolverá el numero de items que has cargado en el arreglo

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 31 Dic 2008 04:06 pm
Gracias, ahora mismo lo hago y te comento, a qué "IF" te refieres? tengotantos que ya estoy mareada, al que está el el último mensaje que envié?

Por al_di

65 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 31 Dic 2008 04:08 pm
El que tienes despues del fondoLoop.start();

Quedaria asi

Código ActionScript :

if(fondoLoop.obtenerCantidad() == 14 ) { 
   fondoLoop.stop();
   getURL("http://www.cristalab.com");
}

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 31 Dic 2008 04:13 pm
GRACIAS, TE ADORO, ahora lo pruebo. MUCHAS GRACIAS DE VERAS!!!!

Por al_di

65 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 31 Dic 2008 04:30 pm
Drarok, no me funciona. Me sigue haciendo el loop y no me abre la URL. Puse en el .as al final de las funciones públicas

Código :

.........................................
public function start() {
      contenedor.contenedor2._alpha = 0;
      contenedor.precarga.loadClip(listaFotos[foto], contenedor.contenedor2);
      paseDeFotos = setInterval(this, "SiguienteImagen", tiempo);
   }
   public function stop() {
      clearInterval(paseDeFotos);
   }
   public function push(queURL) {
      listaFotos.push(queURL);
   }
   public function obtenerCantidad() {
      return.listaFotos.length;
   }
   //--------------------
   private function SiguienteImagen() {
      (foto<(listaFotos.length-1)) ? foto++ : foto=0;
      var cont:MovieClip = contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-2);
      cont.swapDepths(contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-1));
      cont._alpha = 0;
      contenedor.precarga.loadClip(listaFotos[foto], cont);
   }
}


y en el fla:

Código :

var fondoLoop = new LoopIMG(this);
var obtenerCantidad:Number = 14;
fondoLoop.setPosicion(26, 125);
fondoLoop.push("phot/fot2.swf");
fondoLoop.push("phot/fot3.swf");
fondoLoop.push("phot/fot4.swf");
fondoLoop.push("phot/fot5.swf");
fondoLoop.push("phot/fot6.swf");
fondoLoop.push("phot/fot7.swf");
fondoLoop.push("phot/fot8.swf");
fondoLoop.push("phot/fot9.swf");
fondoLoop.push("phot/fot10.swf");
fondoLoop.push("phot/fot11.swf");
fondoLoop.push("phot/fot12.swf");
fondoLoop.push("phot/fot13.swf");
fondoLoop.push("phot/fot14.swf");
fondoLoop.push("phot/fot15.swf");
fondoLoop.setTiempo(4000);
fondoLoop.start();
//
if (fondoLoop.obtenerCantidad() == 14) {
   fondoLoop.stop();
   getURL("http://www.monicadiaz.com.ar", "_self");
}


tuve que añadir la "var obtenerCantidad:Number = 14;" porque me pedía una variable o propiedad. No sé si es correcto. Lo siento, me isento tán inútil y latosa, que me da verguenza, pero necesito solucionar esto, hoy. No tengo mucho tiempo.

Por al_di

65 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 31 Dic 2008 04:39 pm
No has puesto correctamente la funcion, tu has puesto

Código ActionScript :

public function obtenerCantidad() {
      return.listaFotos.length;
   }

No va un punto despues de la palabra return, fijate bien como te puse el la funcion en el post anterior y remueve la linea
var obtenerCantidad:Number = 14;

por si acaso te voy a poner el contenido de cada archivo, mira que el nombre que te pongo del archivo .as sea igual al que tienes

LoopIMG.as

Código ActionScript :

class LoopIMG {
   private var ruta:MovieClip;
   private var listaFotos:Array;
   private var tiempo:Number;
   private var contenedor:MovieClip;
   private var paseDeFotos:Number;
   private var foto:Number;
   //-------------------------
   public function LoopIMG(fotos) {
      ruta = fotos;
      contenedor = ruta.createEmptyMovieClip("contenedor1", ruta.getNextHighestDepth());
      contenedor.createEmptyMovieClip("contenedor1", contenedor.getNextHighestDepth());
      contenedor.createEmptyMovieClip("contenedor2", contenedor.getNextHighestDepth());
      listaFotos = new Array();
      setTiempo(4000);
      foto = 0;
      //
      contenedor.precarga = new MovieClipLoader();
      contenedor.listener = new Object();
      contenedor.precarga.addListener(contenedor.listener);
      contenedor.listener.onLoadComplete = function(cont:MovieClip) {
         cont.onEnterFrame = function() {
            if (this._alpha<100) {
               this._alpha += 10;
            } else {
               delete this.onEnterFrame;
            }
         };
      };
   }
   public function setTiempo(segundos) {
      tiempo = segundos;
   }
   public function setPosicion(queX, queY) {
      contenedor._x = 26;
      contenedor._y = 125;
   }
   public function start() {
      contenedor.contenedor2._alpha = 0;
      contenedor.precarga.loadClip(listaFotos[foto], contenedor.contenedor2);
      paseDeFotos = setInterval(this, "SiguienteImagen", tiempo);
   }
   public function stop() {
      clearInterval(paseDeFotos);
   }
   public function push(queURL) {
      listaFotos.push(queURL);
   }
   public function obtenerCantidad() {
      return listaFotos.length;
   }

   //--------------------
   private function SiguienteImagen() {
      (foto<(listaFotos.length-1)) ? foto++ : foto=0;
      var cont:MovieClip = contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-2);
      cont.swapDepths(contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-1));
      cont._alpha = 0;
      contenedor.precarga.loadClip(listaFotos[foto], cont);
   }
}


en tu .fla (por si acaso yo en este codigo estoy importando la clase porque si no no me funcionaria en mi pc, si tu ya lo estas haciendo no es necesario que copies la primera linea)

Código ActionScript :

import LoopIMG

var fondoLoop = new LoopIMG(this);

fondoLoop.setPosicion(26, 125);
fondoLoop.push("phot/fot2.swf");
fondoLoop.push("phot/fot3.swf");
fondoLoop.push("phot/fot4.swf");
fondoLoop.push("phot/fot5.swf");
fondoLoop.push("phot/fot6.swf");
fondoLoop.push("phot/fot7.swf");
fondoLoop.push("phot/fot8.swf");
fondoLoop.push("phot/fot9.swf");
fondoLoop.push("phot/fot10.swf");
fondoLoop.push("phot/fot11.swf");
fondoLoop.push("phot/fot12.swf");
fondoLoop.push("phot/fot13.swf");
fondoLoop.push("phot/fot14.swf");
fondoLoop.push("phot/fot15.swf");
fondoLoop.setTiempo(4000);
fondoLoop.start();
//
if (fondoLoop.obtenerCantidad() == 14) {
   fondoLoop.stop();
   getURL("http://www.monicadiaz.com.ar", "_self");
}

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 31 Dic 2008 04:45 pm

Código ActionScript :

public function obtenerCantidad() {
      //return.listaFotos.length; // incorrecto
      return listaFotos.length; //correcto
}

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

chrome
Citar            
MensajeEscrito el 31 Dic 2008 05:12 pm
Chicos, uuuuuuuuuuaaaaaaaaaaaaaaaa, no me resulta. Sigue haciendo el loop. no me abre la URL. copié exactamente el .as que re-escribiste:
class LoopIMG1 {
private var ruta:MovieClip;
private var listaFotos:Array;
private var tiempo:Number;
private var contenedor:MovieClip;
private var paseDeFotos:Number;
private var foto:Number;
//-------------------------
public function LoopIMG(fotos) {
ruta = fotos;
contenedor = ruta.createEmptyMovieClip("contenedor1", ruta.getNextHighestDepth());
contenedor.createEmptyMovieClip("contenedor1", contenedor.getNextHighestDepth());
contenedor.createEmptyMovieClip("contenedor2", contenedor.getNextHighestDepth());
listaFotos = new Array();
setTiempo(4000);
foto = 0;
//
contenedor.precarga = new MovieClipLoader();
contenedor.listener = new Object();
contenedor.precarga.addListener(contenedor.listener);
contenedor.listener.onLoadComplete = function(cont:MovieClip) {
cont.onEnterFrame = function() {
if (this._alpha<100) {
this._alpha += 10;
} else {
delete this.onEnterFrame;
}
};
};
}
public function setTiempo(segundos) {
tiempo = segundos;
}
public function setPosicion(queX, queY) {
contenedor._x = 26;
contenedor._y = 125;
}
public function start() {
contenedor.contenedor2._alpha = 0;
contenedor.precarga.loadClip(listaFotos[foto], contenedor.contenedor2);
paseDeFotos = setInterval(this, "SiguienteImagen", tiempo);
}
public function stop() {
clearInterval(paseDeFotos);
}
public function push(queURL) {
listaFotos.push(queURL);
}
public function obtenerCantidad() {
return listaFotos.length;
}
//--------------------
private function SiguienteImagen() {
(foto<(listaFotos.length-1)) ? foto++ : foto=0;
var cont:MovieClip = contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-2);
cont.swapDepths(contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-1));
cont._alpha = 0;
contenedor.precarga.loadClip(listaFotos[foto], cont);
}
}


y en el fla tengo

var fondoLoop = new LoopIMG1(this);
//var obtenerCantidad:Number = 14;
fondoLoop.setPosicion(26, 125);
fondoLoop.push("phot/fot2.swf");
fondoLoop.push("phot/fot3.swf");
fondoLoop.push("phot/fot4.swf");
fondoLoop.push("phot/fot5.swf");
fondoLoop.push("phot/fot6.swf");
fondoLoop.push("phot/fot7.swf");
fondoLoop.push("phot/fot8.swf");
fondoLoop.push("phot/fot9.swf");
fondoLoop.push("phot/fot10.swf");
fondoLoop.push("phot/fot11.swf");
fondoLoop.push("phot/fot12.swf");
fondoLoop.push("phot/fot13.swf");
fondoLoop.push("phot/fot14.swf");
fondoLoop.push("phot/fot15.swf");
fondoLoop.setTiempo(4000);
fondoLoop.start();
//
if (fondoLoop.obtenerCantidad() == 14) {
fondoLoop.stop();
getURL("http://www.cristalab.com", "_self");
}

no me abre nada mas que la secuencia de fotos. Me estoy volviendo loca.... no puede ser esto. Limpié el .as y lo volv´a re-escribir. ¿Qué otra cosa puede ser? qusiera topar con ZGuille o Chininet, pero no consigo, uno de ellos es autor de esta clase. Ya estoy tan mareada que no sé ni cómo me llamo. Un último esfuerzo, puede ser? por fa!!!!!!!!!!!!

Por al_di

65 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 31 Dic 2008 05:18 pm
mm pues ya no se como explicarte, lo he probado y funciona, tendrias que entender lo que se esta haciendo, debes estudiar mas y entender lo que se esta haciendo. No se porque le llamas LoopIMG1, en mi codigo no tengo ningun 1 ni en el codigo original del tutorial tampoco, debes concentrarte y leer y mas que todo APRENDER lo que estas haciendo.

Suerte

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 31 Dic 2008 06:20 pm
Drarok, nunca dije ser una experta en AS, al contrario, por algo recurro al foro en pos de ayuda. Mira, logré que funcionara, bah.... al menos eso parece. Envié tantos pedidos de auxilio que ya no sé cómo me llamo, pero al final me resulta una "private function" para este caso, después lo estudiaré (COMO SUELO HACER CON CADA SCRIPT).
el código es el siguiente (por si le ayuda a alguien)

Código :

private function SiguienteImagen() {
      if (foto<(listaFotos.length-1)) {
         foto++;
      } else {
         foto = 0;
         getURL("http://www.monicadiaz.com.ar");
         clearInterval(paseDeFotos);
      }
      var cont:MovieClip = contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-2);
      cont.swapDepths(contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-1));
      cont._alpha = 0;
      contenedor.precarga.loadClip(listaFotos[foto], cont);
   }
}

se le añade un if a la función privada y se limpia el loop. PERO, cuando la hago funcionar, al final de la 15º foto me salta una ventana con esto:
Flash Player detuvo la operación que podría ser no segura
la siguente aplicación local de su equipo o red
documentandsetting/bla, bla.bla/llama_fotos.sw (el nombre de mi archivo)
está intentando comunicarse con esta URL apta para Internet
http://www.cristalab.com
click en configuración y luego reniciar la aplicación.

pulsé en configuración pero ma slata una página que no tiene nada que ver, entonces volví al fla y volví a puvlicar lo que tenía para poder pulsar OK, pero no salta al URL. ¿Sabrían decirme qué debo hacerpara que no salga este cartel molesto? Gracias y REALMENTE FELIZ 2009

Por al_di

65 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 31 Dic 2008 06:25 pm
Debes dar click en configuracion, es un tema de seguridad que flash implemento desde la version 8, eso solamente te sucedera en local, nunca en una website publicada, debes ir a esa pagina y darle permiso a tus .swf o mejor aun a todo tu disco C o D donde tengas tus swf para que tengan acceso a internet. POr si le diste cancelar a ese mensaje ya no te va a salir, pero esta es la pagina que salia en el boton configuracion, aqui agrega los permisos.

http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 31 Dic 2008 06:32 pm
un millón de gracias y disculpa mi inexperiencia en As. Me tuvieron que cambiar el mother en medio del trabajo y enmedio de estas fechas. FELIZ 2009, prometo no ser tan pesada de aquí en adelante. GRACIAS, nuevamente. FELICIDADES!!!!!!!!!!!!!!!!!

Por al_di

65 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 01 Ene 2009 01:11 am
FELIZ AÑO!!! pasala bonito :)

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox

 

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