Comunidad de diseño web y desarrollo en internet online

Sintaxis

Citar            
MensajeEscrito el 23 Sep 2005 11:09 pm
Quisiera que alguien me explique esta linea de codigo ya que estoy depurando una galeria y no termino de entender esta linea:

var baseurl = _url.substr(0,_url.lastIndexOf("/")+1);

despues, esta variable se usa aca:

for (i=1; i<=12; i++) thumb_graphics.push(baseurl+pathC+i+".jpg");

Bueno eso es todo, un saludo!!!

Por 3dg

65 de clabLevel



Genero:Masculino  

Buenos Aires Argentina

firefox
Citar            
MensajeEscrito el 24 Sep 2005 12:42 am
errr, de donde te pirateaste el codigo.........

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

msie
Citar            
MensajeEscrito el 24 Sep 2005 01:52 am
Bueno 3dg, vamos a tratar de explicarte todo, para que lo puedas aplicar luego :P :

Código :

var baseurl = _url.substr(0,_url.lastIndexOf("/")+1);


Un metodo de la Clase String:
substr(indice de inicio, cuantos caracteres a partir de alli tomo)

substr= es una funcion que retorna una subcadena de una cadena, desde el caracter que esta en la posicion indice de inicio y a partir de alli agarra el numero de caracteres definidos por cuantos caracteres a partir de alli tomo

ejemplo:

Código :

cadena = "Esto es un ejemplo de substr";
misubcadena = cadena.substr(0,4);
trace(misubcadena); //imprime Esto
misubcadena = cadena.substr(5,2);
trace(misubcadena); //imprime es


ahora la otra funcion implicada es
Un metodo de la clase String
lastIndexOf(subcadena, [indice]) : Number

aqui estan omitiendo el parametro indice porque es opcional asi que buscaria en toda la cadena, esta funcion lo que hace buscar de derecha a izquierda la primera ocurrencia de la subcadena y retorna el indice (de donde comienza) que ella tiene en la cadena. recuerda los indices son la van desde 0 hasta longitud-1, un ejemplo:

Código :

cadena = "a1a2as";
miIndice = cadena.lastIndexOf("a");
trace(miIndice); // imprime 4
miIndice = cadena.lastIndexOf("a",4);
trace(miIndice); // tambien imprime 4
miIndice = cadena.lastIndexOf("a",3);
trace(miIndice); // imprime 2


Si el indice no es omitido entonces, empieza a buscar desde el indice hacia la izquierda, ah si en tal caso no encuentra la subcadena en la cadena retorna -1 :wink:


ahora vamos a intentar explicar de manera teorica tu ejemplo, suponiendo esta url :
http://www.cristalab.com/foros/index.php


nos esta diciendo que vamos a extraer una subcadena desde 0 hasta el valor que nos retorne _url.lastIndexOf("/")+1, entonces si buscamos el ultimo / nos daria 30 y bueno mas 1 seria 31, asi que extraeriamos la subcadena que hay desde 0 hasta 31, y asi extraeriamos esta subcadena:
http://www.cristalab.com/foros/


Si quieres prueba este ejemplo:

Código :

cadena="http://www.cristalab.com/foros/index.php";
indice = cadena.lastIndexOf("/");
trace(indice); // imprime 30
var baseurl = cadena.substr(0,cadena.lastIndexOf("/")+1);
trace (baseurl); // imprime http://www.cristalab.com/foros/


saludos ^^

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 24 Sep 2005 02:33 am
Muchas gracias por la explicación.

Un saludo, y gracias de nuevo por todo!!!

Por 3dg

65 de clabLevel



Genero:Masculino  

Buenos Aires Argentina

firefox
Citar            
MensajeEscrito el 24 Sep 2005 10:04 pm
A ver si me podes ayudar con esto, que me tiene loco ya!

tengo esta galeria que me pasaron, funciona con un MC que se atacha de forma dinamica, y asi se van cargando los MC que en realidad son los Thumbs.
El tema es que asi como esta solo te muestra los thumbs y lo que yo quiero lograr es que una ves que hayan cargados se pueda hacer click sobre cada uno de ellos y asi poder ver la foto en grande.

Este es el codigo:

Código :

/// VARIABLES
pathC = "fotos/" 
var baseurl = _url.substr(0,_url.lastIndexOf("/")+1);
img = 20;
b = new Array();
a = 1; 
h_spacing = 70; 
v_spacing = 55;
h_contador = 10; 
v_contador = 2;
h_pos = -130;
v_pos = 5; 
contador = 0; 
thumbMC = new Array();
thumbGraficos = new Array(); 

for (i=1; i<=img; i++) thumbGraficos.push(baseurl+pathC+i+".jpg");

function CreateThumbContainers(){
   var x, y, initObj, curr;
   for (y=0; y<v_contador; y++){
      for (x=0; x<h_contador; x++){
         contador++;
         initObj = {_x: h_pos + x*h_spacing, _y: v_pos + y*v_spacing};
         curr = this.attachMovie("thumb_container", "tc"+contador+"_mc", contador, initObj);
         curr.progress_mc._xscale = 0;
         thumbMC.push(curr);
      }
   }
}

function thumbsCargarEnterFrame(){
   var lod = this.loader_mc.getBytesLoaded();
   var tot = this.loader_mc.getBytesTotal();
   if (lod && tot){
      var percent_loaded = lod/tot;
      this.progress_mc._xscale = 100 * percent_loaded;
      if (percent_loaded == 1){
         cargarProxThumbs();
         this.progress_mc._visible = false;
         delete this.onEnterFrame;
      }
   }
}

function cargarProxThumbs(){
   if (contador >= thumbGraficos.length) return false;
   var imgURL = thumbGraficos[contador];
   thumbMC[contador].loader_mc.loadMovie(imgURL);
   thumbMC[contador].onEnterFrame = thumbsCargarEnterFrame;
   contador++;
}

CreateThumbContainers();
contador = 0;
cargarProxThumbs();
/////
stop;


Yo trate de poner un:

Código :

this.onPress = function(){
trace("numero de foto");
}


Pero de esta forma siempre me sale el ultimo que se cargo.

Asique no se como hacer para lograr eso

Por 3dg

65 de clabLevel



Genero:Masculino  

Buenos Aires Argentina

firefox

 

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