gimbras Posted April 4, 2006 at 04:38 PM Report #20911 Posted April 4, 2006 at 04:38 PM 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/
gimbras Posted April 4, 2006 at 10:28 PM Author Report #20926 Posted April 4, 2006 at 10:28 PM 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/
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now