Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/12/2007, 22:13
Avatar de Potro
Potro
 
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
Re: PAGINACION EN FLASH - sin cargar todos los registros de un solo golpe - vealo aqu

SEGUNDA PARTE
************************************************** **


3.5- Ya obteniendo este resultado prosigamos con el código de que llevaran los botones siguiente y anterior.

Seleccionamos el botón Anterior y en las actions ponemos lo siguiente:

on (press)
{
botones(2)
}





Ahora seleccionemos el botón Siguiente y pongamos el siguiente codigo:

on (press)
{
botones(1)
}






Como vemos en los dos botones solo mandamos a llamar a una función que estará en el mismo keyframe donde hemos jalado los primeros 5 registros pero cada botón manda una variable distinta para poder distinguir a cual se le oprimió.

Función botones()



function botones(valorbtn)
{
//Valido si el botón “SIGUIENTE” fue oprimido y si es así ejecuto lo siguiente
if (valorbtn == 1)
{
//Primero validamos si el número de página no ha rebasado el número de páginas obtenidas
if (pagina.text < pag_total.text)
{
//si el número de paginas no ha sido rebasada ejecutamos lo siguiente
//La variable pag_act toma el valor en ese momento de pagina.text
var pag_act:Number = Number(pagina.text);
//creamos la variable nu que será el resultado de la variable pag_act * 5
var nu:Number = pag_act * 5;
//Mandamos a llamar a la funcción mas5 y le mandamos la variable nu
mas5(nu)
//Le damos un nuevo valor a pagina.text sumandole 1
pagina.text = pag_act + 1;
}
//Valido si el botón “ANTERIOR” fue oprimido y si es así ejecuto lo siguiente
} else if (valorbtn == 2)
{
//Aqui hacemos una validación antes para ver si la variable pagina es mayor a 1 si es así se ejecuta
if (pagina.text > 1)
{
//La variable pag_act toma el valor en ese momento de pagina.text
var pag_act:Number = Number(pagina.text);
/*creamos la variable nu2 que será el resultado de pag_actual * 5 - 10 esto nos ayudara a descontarle 5 registros a nuestra paginación*/
var nu2:Number = (pag_act * 5) - 10;
//Mandamos a llamar a la función menos5 y le mandamos la variable nu2
menos5(nu2)
//Le damos un nuevo valor a pagina.text descontandole 1
pagina.text = pag_act - 1;
}
}
}


Bueno analicemos que hace esta función, en primera instancia ve si hará un procedimiento del botón siguiente o del botón anterior.

Si se ha oprimido SIGUIENTE, primero se validara que aun allá más páginas para ver y esto lo hacemos comparando la página actual contra el número de páginas totales, después si pasa esa comprobación tomamos el número de la pagina actual y lo multiplicamos por 5 (El 5 es por que estamos paginando de 5 en 5) ese resultado se lo mandaremos a una función llamada mas5.

Si se ha oprimido ANTERIOR, primero se validara que aun podamos regresar una pagina anterior y eso lo haremos comprobando que la pagina actual sea mayor a 1, bien y si pasa esa comprobación tomamos el número de la pagina actual y lo multiplicamos por 5 y le restamos 10 que es el doble de la paginación, y ese resultado se lo mandaremos a una función llamada menos5.

3.6- Veamos que hace la función mas5()

function mas5(nu)
{
/* Aqui creamos 5 variables las cuales tomaran cada una el registro que deben de mostrar,
Vemos que num_mas1 es igual a la variable num1 + variable nu que se nos ha mandado de la función botones, y así sucesivamente las otras 4 */
var num_mas1:Number = num1 + nu;
var num_mas2:Number = num2 + nu;
var num_mas3:Number = num3 + nu;
var num_mas4:Number = num4 + nu;
var num_mas5:Number = num5 + nu;
//Mostramos los siguientes registros
//Mostramos los siguientes nombres
nombre1 = SendData["nombre"+num_mas1].toString();
nombre2 = SendData["nombre"+num_mas2].toString();
nombre3 = SendData["nombre"+num_mas3].toString();
nombre4 = SendData["nombre"+num_mas4].toString();
nombre5 = SendData["nombre"+num_mas5].toString();
//Mostramos las siguientes edades
edad1 = SendData["edad"+num_mas1].toString();
edad2 = SendData["edad"+num_mas2].toString();
edad3 = SendData["edad"+num_mas3].toString();
edad4 = SendData["edad"+num_mas4].toString();
edad5 = SendData["edad"+num_mas5].toString();
//Mostramos los siguientes sexos
sexo1 = SendData["sexo"+num_mas1].toString();
sexo2 = SendData["sexo"+num_mas2].toString();
sexo3 = SendData["sexo"+num_mas3].toString();
sexo4 = SendData["sexo"+num_mas4].toString();
sexo5 = SendData["sexo"+num_mas5].toString();

}


Analicemos un poco esta función realmente es interesante lo que hace, como vemos creamos una variable num_mas1 que es igual a la suma de num1, si recordamos num1 vale 1 se declaro en la carga de los primeros 5 registros y se le suma con la variable nu si también recordamos esta variable nos viene cuando se le ha dado clic al botón SIGUIENTE. Analicemos que número nos manda nu al primer clic que se da.

Recordemos que nu es la suma de pag_act * 5 si en ese momento pagina actual es = 1 entonces esto quedaría de la siguiente manera nu = 1 * 5 y el resultado es 5, así que ya sabemos que en el primer clic nu valdrá 5.

Entonces en nuestra función mas5 sabemos que:

var num_mas1:Number = num1 + nu;

Es igual a:

var num_mas1:Number = 1 + 5;

Entonces esto nos dará como resultado un 6, entonces nombre1 ahora cargara nombre6 y así sucesivamente con los demás nombres, edades y sexos.
nombre1 = SendData["nombre"+num_mas1].toString();
nombre1 = SendData["nombre6"].toString();
Bueno ya entendiendo esto veamos que hace nuestro flash cuando compilamos este código ya en el keyframe.


Página 1 de 5




Página 2 de 5




Página 3 de 5




Página 4 de 5




Página 5 de 5





Como vemos ya esta funcionando perfectamente nuestro botón SIGUIENTE y si nosotros estando en la página 5 de 5 le volvemos a dar siguiente no hará nada ya que nuestra validación:

if (pagina.text < pag_total.text)

Si pagina actual no es menor a el total de páginas entonces no se ejecutara de nuevo el código.




3.7- Ahora Veamos que hace la función menos5()

function menos5(nu2)
{
/* Aqui creamos 5 variables las cuales tomaran cada una el registro que deben de mostrar,
Vemos que num_menos1 es igual a la variable num1 + variable nu2 que se nos ha mandado de la función botones, y asi sucesivamente las otras 4 */
var num_menos1:Number = num1 + nu2;
var num_menos2:Number = num2 + nu2;
var num_menos3:Number = num3 + nu2;
var num_menos4:Number = num4 + nu2;
var num_menos5:Number = num5 + nu2;
//Aquí mostramos los 5 registros anteriores
nombre1 = SendData["nombre"+num_menos1].toString();
nombre2 = SendData["nombre"+num_menos2].toString();
nombre3 = SendData["nombre"+num_menos3].toString();
nombre4 = SendData["nombre"+num_menos4].toString();
nombre5 = SendData["nombre"+num_menos5].toString();
//Aquí mostramos las edades anteriores
edad1 = SendData["edad"+num_menos1].toString();
edad2 = SendData["edad"+num_menos2].toString();
edad3 = SendData["edad"+num_menos3].toString();
edad4 = SendData["edad"+num_menos4].toString();
edad5 = SendData["edad"+num_menos5].toString();
//Aquí mostramos los sexos anteriores
sexo1 = SendData["sexo"+num_menos1].toString();
sexo2 = SendData["sexo"+num_menos2].toString();
sexo3 = SendData["sexo"+num_menos3].toString();
sexo4 = SendData["sexo"+num_menos4].toString();
sexo5 = SendData["sexo"+num_menos5].toString();
}


Analicemos también un poco esta función realmente es tan interesante como la anterior, tomemos el primer ejemplo:

var num_menos1:Number = num1 + nu2;

Veamos que significa num1 y nu2, como se dijo en la función pasada num1 se declaro al principio y su valor es 1 y nu2 en la multiplicación de página actual por 5 menos 10.

var nu2:Number = (pag_act * 5) - 10;

Bueno imaginemos que ya se le ha dado un clic a SIGUIENTE y estamos en la página 2 entonces esto quedaría de la siguiente manera:

Var nu2:Number = (2 * 5) – 10;
Var nu2:Number = (10) – 10;
Var nu2:Number = 10 – 10;
Var nu2:Number = 0;

Entonces nu2 es igual a 0

var num_menos1:Number = num1 + nu2;
var num_menos1:Number = 1 + 0;

num_menos1 = 1;

nombre1 = SendData["nombre"+num_menos1].toString();
nombre1 = SendData["nombre1”].toString();


Y así se retrocederá 5 registros por cada campo y resulta lo mismo para edad y sexo.

Ahora nótese que si pagina actual no es mayor a 1, ya no nos permite ir mas atrás esto recordemos que lo hace:
if (pagina.text > 1)


Metamos esta función a nuestro keyframe y veamos que nos hace.




Bueno esta por demás poner una imagen ya que no se podría apreciar bien el retroceso mejor pasemos a otra cosa.

Última edición por Potro; 11/12/2007 a las 22:32