Jump to content
Sign in to follow this  
gimbras

Ciclo para linkar

Recommended Posts

gimbras

Oias!

Ando a linkar montes de movieclips e resolvi usar um ciclo FOR (que de resto já é usado para chamar os movieclips). E usar a variável criada no meio do URL para facilitar as coisas.

O problema é que não sei concatenar parte do url com a referida variável.

O AS é o seguinte:

for (var i:Number = 1;i<=20;i++){
this["mc_"+i].onRollOver = function() {
var numero:Number = Number(this._name.split("_").pop());
this.onEnterFrame = function () {
  _root["cap"+numero]._alpha += (100-_root["cap"+numero]._alpha)/3;
  _root["cap"+numero]._x -= (_root["cap"+numero]._x-_xmouse)/2;
  _root["cap"+numero]._y -= (_root["cap"+numero]._y-_ymouse)/2;
};
};
this["mc_"+i].onRollOut = function() {
var numero:Number = Number(this._name.split("_").pop());
this.onEnterFrame = function() {
  _root["cap"+numero]._alpha += (0-_root["cap"+numero]._alpha)/3;
};
};
};

mc_1.onRelease = function () {
getURL("teste.php?where=1", "_self")
}

Ora são montes de movieclips e andar a linká-los um a um demora bastante.

Pensei em criar outro ciclo FOR deste género:

for (var i:Number = 1;i<=20;i++){
this["mc_"+i].onRelease = function() {
getURL("teste.php?where=1", "_self")
};
};

Mas isso só linkaria todos os mc ao mesmo url. Eu queria que cada mc tivesse um url onde a parte where=1 fosse sendo somado 1 valor. Ou seja, o mc_1 ia para where=1, o mc_2 para where=2, etc...

Também se possível ser eu a indicar a partir de que número é que se começaria a somar os links.

Por exemplo no where=2, o 2 é o id de uma tabela da base de dados. Vamos supor que a base de dados já vai no ID 386, eu quero que comece a somar a partir daí mais 1. Ficando teste.php?where=387,teste.php?where=388, etc...

Já tentei isto

for (var i:Number = 1;i<=20;i++){
this["mc_"+i].onRelease = function() {
getURL("teste.php?where="+i+"", "_self")
};
};

Só que o link gerado é 21, ou seja começa dps do ciclo chegar aos 20.

Peço então a vossa ajuda.

Cumps.


Redcodestudio - Programação Web - http://www.redcodestudio.com/

Share this post


Link to post
Share on other sites
gimbras

Bom,

já descobri a resposta.

Temos de obter o valor actual da variável 'i' que está a ser incrementada (que está a ser contada), e não o seu valor na hora que o onRelease é chamado. Para fazer isto, existe a função assignLink() que obtem a variável 'i' como um parâmetro e usa-la para o link. Porque o parâmetro é passado como um valor, ele irá conter o valor real de  'i'.

O número a partir do qual vamos começar a adicionar valores para os links serem gerados é o segundo parâmetro. Temos de ter em atenção o parâmetro linkID. De momento está codificado, mas pode ser um número vindo de uma base de dados.

Só temos também de ter em atenção que o valor obtido com o linkID é um número a mais do que o número com o qual iniciamos a contagem, porque se soma sempre o valor da variável 'i' em cada chamada. Portanto para ter o linkID a começar em 381, o parâmetro tem de ser 380.

function assignLink(mcID:Number, linkID:Number){
_root["mc_"+mcID].onRelease = function(){
	getURL("test.php?where="+linkID+"", "_self");
}
}

// chamada a partir de um ciclo
for (var i:Number = 1;i<=20;i++){
// ...
assignLink(i,380+i);
// ...
}

Resolvido.

Cumps.


Redcodestudio - Programação Web - http://www.redcodestudio.com/

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.