Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Ciclo For Para Criar Links


gimbras

Pergunta

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...

Mas não sei se isto está certo nem como colocar a var i no meio do endereço.

Peço então a vossa ajuda.

Cumps.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

no primeiro exemplo só o onRelease do mc_1 está sendo ativado, já no segundo todos os movs tem uma ação.

Para concatenar uma var ao texto getURL você pode fazer da mesmo forma como fez para deixar o alvo da ação onRelease flutuante:

for (var i:Number = 1;i<=20;i++){

this["mc_"+i].onRelease = function() {

getURL("teste.php?where="+i, "_self")

};

};

já para decidir em qual valor de id começar, você pode criar uma função e através dela informar o id q deva ser usado, exemplo:

mc_onRelease = function(i, k){

this["mc_"+i].onRelease = function() {

getURL("teste.php?where="+k, "_self")

};

}

nesse exemplo "i" seria o ponteiro para identificar o movie alvo e "k" o identificador do ID da tabela.

Foi isso q eu entendi que você queria pelo menos ...

Link para o comentário
Compartilhar em outros sites

  • 0

Era exactamente isto que eu queria.

Mas...

no primeiro exemplo só o onRelease do mc_1 está sendo ativado, já no segundo todos os movs tem uma ação.

Para concatenar uma var ao texto getURL você pode fazer da mesmo forma como fez para deixar o alvo da ação onRelease flutuante:

for (var i:Number = 1;i<=20;i++){

this["mc_"+i].onRelease = function() {

getURL("teste.php?where="+i, "_self")

};

};

Aqui ele começa a linkar a partir do 21, ficando teste.php?where=21

Já tentei criar um novo ciclo substituindo nesse código a var i pela nova var y, mas acontece o mesmo o link começa sempre no where=21

já para decidir em qual valor de id começar, você pode criar uma função e através dela informar o id q deva ser usado, exemplo:

mc_onRelease = function(i, k){

this["mc_"+i].onRelease = function() {

getURL("teste.php?where="+k, "_self")

};

}

nesse exemplo "i" seria o ponteiro para identificar o movie alvo e "k" o identificador do ID da tabela.

Foi isso q eu entendi que você queria pelo menos ...

E aqui não fica linkado, nem percebi bem onde se informa o id a partir do qual se começa a contar.

Entendo que a var k é o id, mas onde coloco a informação que por exemplo k=381? Para o próximo link ser teste.php?where=382

Obg pela ajuda até agora.

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...