Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 11
Sexo: Masculino
Localização: Guimarães, Portugal
Contato:

Editar .js Para Receber Variavel

16-08-2008 14:45

a minha duvida é a seguinte:

tenho uma pagina com um swf que atraves de dois botoes envia uma variável de valor 1 ou 2, mediante o botao clicado.
Esta parte está testada e a funcionar na perfeição. Porém como ainda não entendo muito de javascript, através de tutoriais consegui que o javascript me reconheça as variáveis, o que não consegui é que essas variáveis executem uma determinada funcao.

Exemplo do que quero dizer:
Um modulo de noticias e eventos já criado que executa as accoes de dois botoes (next e prev) atraves de um ficheiro .js
O que pretendo é modificar as funcoes do .js de forma a que a funcao seja executada com a recepção das minhas variáveis recebidas e não através dos botões (next e prev).

A variável 1 poderá corresponder ao botão prev e a variável 2 poderá corresponder ao botão next.

O codigo do .js é o seguinte:

window.addEvent("domready",function(){         $ES(".gk_tabarts").each(function(el,i){                 var module_id = el.getProperty("id");                 var $G = $Gavick["gk_tabarts"+module_id];                 var modsArray = el.getElementsBySelector('.gk_tabarts_item');                 var animation = ($G["autoAnimation"] == 0) ? true : false;                 var actual = 0;                 var evnt = ($G["activator"] == 0) ? "click" : "mouseenter";                 var amount = modsArray.length;                 var timer = false;                                 if($G["styleType"] == 1){                         var baseWidth = $E(".gk_tabarts_container2", el).getSize().size.x;                         el.setStyle("width",baseWidth+"px");                         var listTab = $E('.gk_tabartsmenu_ul',el);                         baseWidth -= listTab.getSize().size.x;                         baseWidth -= listTab.getStyle("margin-left").toInt();                         baseWidth -= listTab.getStyle("margin-right").toInt();                         baseWidth -= listTab.getStyle("padding-right").toInt();                         baseWidth -= listTab.getStyle("padding-left").toInt();                         baseWidth -= $E(".gk_tabarts_container0",el).getStyle("margin-left").toInt();                         baseWidth -= $E(".gk_tabarts_container0",el).getStyle("margin-right").toInt();                         baseWidth -= $E(".gk_tabarts_container0",el).getStyle("padding-left").toInt();                         baseWidth -= $E(".gk_tabarts_container0",el).getStyle("padding-right").toInt();                                                 $E(".gk_tabarts_container1",el).setStyle("width",baseWidth+"px");                         $E(".gk_tabarts_container0",el).setStyle("width",baseWidth+"px");                         $ES(".gk_tabarts_item", el).setStyle("width",baseWidth+"px");                 }                 $E('.gk_tabartsmenu_ul li',el).toggleClass("active");                 var param = ($G["animationType"] == 1) ? "width": "height";                 $E(".gk_tabarts_container2", el).setStyle(param, ((amount+1)*$E(".gk_tabarts_container1", el).getSize().size.x));                 $ES(".gk_tabarts_item", el).each(function(e){e.setStyle("width", $E(".gk_tabarts_container1", el).getSize().size.x + "px");});                 $ES('.gk_tabartsmenu_ul li', el).each(function(elm,j){                         elm.addEvent(evnt,function(){                             actual = gk_tabarts_anim(j, actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"]);                                                                 $ES('.gk_tabartsmenu_ul li', el).each(function(elmt){elmt.setProperty("class","");});                                 $ES('.gk_tabartsmenu_ul li', el)[actual].toggleClass("active");                                                                 if(timer){                                         $clear(timer);                                          timer = (function(){                                                 actual = gk_tabarts_anim("right" , actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"]);                                                 $ES('.gk_tabartsmenu_ul li', el).each(function(elmt, i){elmt.setProperty("class","");});                                                 $ES('.gk_tabartsmenu_ul li', el)[actual].toggleClass("active");                                         }).periodical($G["animationInterval"]);                                 }                         });                 });                                 if($E(".gk_tabarts_button_next", el)){                         $E(".gk_tabarts_button_next", el).addEvent("click",function(){                                 actual = gk_tabarts_anim('right', actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"]);                                 $ES('.gk_tabartsmenu_ul li', el).each(function(elmt){elmt.setProperty("class","");});                                 $ES('.gk_tabartsmenu_ul li', el)[actual].toggleClass("active");                                                                 if(timer){                                         $clear(timer);                                         timer = (function(){                                                 actual = gk_tabarts_anim("right" , actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"]);                                                 $ES('.gk_tabartsmenu_ul li', el).each(function(elmt, i){elmt.setProperty("class","");});                                                 $ES('.gk_tabartsmenu_ul li', el)[actual].toggleClass("active");                                         }).periodical($G["animationInterval"]);                                 }                         });                 }                                 if($E(".gk_tabarts_button_prev", el)){                         $E(".gk_tabarts_button_prev", el).addEvent("click",function(){                                 actual = gk_tabarts_anim('left', actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"]);                                       $ES('.gk_tabartsmenu_ul li', el).each(function(elmt){elmt.setProperty("class","");});                                 $ES('.gk_tabartsmenu_ul li', el)[actual].toggleClass("active");                                                                 if(timer){                                         $clear(timer);                                          timer = (function(){                                                 actual = gk_tabarts_anim("right" , actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"]);                                                 $ES('.gk_tabartsmenu_ul li', el).each(function(elmt, i){elmt.setProperty("class","");});                                                 $ES('.gk_tabartsmenu_ul li', el)[actual].toggleClass("active");                                         }).periodical($G["animationInterval"]);                                 }                         });                 }                   if($G["autoAnimation"] == 1){                         timer = (function(){                                 actual = gk_tabarts_anim("right" , actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"]);                                 $ES('.gk_tabartsmenu_ul li', el).each(function(elmt, i){elmt.setProperty("class","");});                                 $ES('.gk_tabartsmenu_ul li', el)[actual].toggleClass("active");                         }).periodical($G["animationInterval"]);                 }         }); });   function gk_tabarts_anim(direct, actual, amount, modsArray, el, t, s){         var transitions_tab = [                 0,0,0,0,0,0,0,0,0,0,0,                 Fx.Transitions.linear,                 Fx.Transitions.Quad.easeIn,                 Fx.Transitions.Quad.easeOut,                 Fx.Transitions.Quad.easeInOut,                 Fx.Transitions.Cubic.easeIn,                 Fx.Transitions.Cubic.easeOut,                 Fx.Transitions.Cubic.easeInOut,                 Fx.Transitions.Quart.easeIn,                 Fx.Transitions.Quart.easeOut,                 Fx.Transitions.Quart.easeInOut,                 Fx.Transitions.Quint.easeIn,                 Fx.Transitions.Quint.easeOut,                 Fx.Transitions.Quint.easeInOut,                 Fx.Transitions.Pow.easeIn,                 Fx.Transitions.Pow.easeOut,                 Fx.Transitions.Pow.easeInOut,                 Fx.Transitions.Expo.easeIn,                 Fx.Transitions.Expo.easeOut,                 Fx.Transitions.Expo.easeInOut,                 Fx.Transitions.Circ.easeIn,                 Fx.Transitions.Circ.easeOut,                 Fx.Transitions.Circ.easeInOut,                 Fx.Transitions.Sine.easeIn,                 Fx.Transitions.Sine.easeOut,                 Fx.Transitions.Sine.easeInOut,                 Fx.Transitions.Back.easeIn,                 Fx.Transitions.Back.easeOut,                 Fx.Transitions.Back.easeInOut,                 Fx.Transitions.Bounce.easeIn,                 Fx.Transitions.Bounce.easeOut,                 Fx.Transitions.Bounce.easeInOut,                 Fx.Transitions.Elastic.easeIn,                 Fx.Transitions.Elastic.easeOut,                 Fx.Transitions.Elastic.easeInOut         ];                 var scr = new Fx.Scroll($E(".gk_tabarts_container1",el), {duration: s, wait: true, transition: transitions_tab[t]});                 if(direct == 'left'){                 (actual > 0) ? actual-- : actual = amount - 1;                 scr.toElement(modsArray[actual]);         }else if(direct == 'right'){                 (actual < (amount-1)) ? actual += 1 : actual = 0;                 scr.toElement(modsArray[actual]);         }else{                 actual = direct;                 scr.toElement(modsArray[actual]);         }                 return actual; }

Obrigado pela atenção
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Editar .js Para Receber Variavel

16-08-2008 15:10

Entendi mais ou menos, veja se é isso

<script> function a1() { alert("alerta 1") }   function a2() { alert("alerta 2") }   function geral(acao) { if(acao=='1') { a1(); } if(acao=='2') { a2(); } }   </script>


<input type="button" value="clique" onclick="javascript:geral('1')"> <input type="button" value="clique" onclick="javascript:geral('2')">

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 11
Sexo: Masculino
Localização: Guimarães, Portugal
Contato:

Editar .js Para Receber Variavel

16-08-2008 16:52

Agradeço a prontidão da resposta.

Pelo que percebi o código é para verificar a recepção das 2 variáveis através de alerts.
Todavia eu já testei a recepção das variáveis com um form que recebe a variável e a apresenta num text input.

Neste momento o que eu pretendia é que no modulo (ficheiro .js) na atribuição das funções dos botões (next e prev)

if($E(".gk_tabarts_button_next", el)){                         $E(".gk_tabarts_button_next", el).addEvent("click",function(){                                 actual = gk_tabarts_anim('right', actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"]);                                 $ES('.gk_tabartsmenu_ul li', el).each(function(elmt){elmt.setProperty("class","");});                                 $ES('.gk_tabartsmenu_ul li', el)[actual].toggleClass("active");

e

if($E(".gk_tabarts_button_prev", el)){                         $E(".gk_tabarts_button_prev", el).addEvent("click",function(){                                 actual = gk_tabarts_anim('left', actual, amount, modsArray, el, $G["animationTransition"], $G["animationSpeed"]);                                       $ES('.gk_tabartsmenu_ul li', el).each(function(elmt){elmt.setProperty("class","");});                                 $ES('.gk_tabartsmenu_ul li', el)[actual].toggleClass("active");

fossem substituidos pela recepção das variaveis correspondentes.

Em caso prático se no flash eu clicar no botao que envia a variavel de valor 1 seja executado no javascript a funcao do botao prev e se clicar no botao que envia a variavel de valor 2 seja executada a funcao do botao next.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Editar .js Para Receber Variavel

16-08-2008 16:57

Não entendo de flash, mas no tópico abaixo, foi recomendado um script para que ative a função no js.

http://www.codigosnaweb.com/forum/viewtopic.php?t=2160
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 11
Sexo: Masculino
Localização: Guimarães, Portugal
Contato:

Editar .js Para Receber Variavel

16-08-2008 17:26

hehehe

o tópico que me aconselhaste foi postado por mim ¨heh¨ na altura que a minha branca era total.
Neste momento eu já consegui resolver a questão do flash e as minhas duvidas só recaem mesmo no javascript. O flash está terminado e já está a enviar as variaveis como eu pretendia. O javascript também já recebe e identifica as variaveis.

Nesse sentido o que eu pretendo é que no .js eu edite o codigo de forma a que o que está feito actualmente (codigo ja enviado)

if (botao next) { botao next é clicado cria uma function() { trocar as "noticias" para "eventos" }

para que a mesma funcao de trocar as noticias para eventos seja executada no caso de a variavel ser recepcionada com o valor 1 ou trocar os eventos para noticias se o valor da variavel for 2

Não sei se foi desta que me expliquei como deve de ser :?:

Se tiveres sugestões ficarei a aguardar, thnx.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Editar .js Para Receber Variavel

16-08-2008 17:35

No flash tem como colocar a função, certo?

botao.onRelease = function() { getURL("javascript:nomedafuncao('next');"); }

ai lá no js, cria uma função tipo:

function nomedafuncao(valor) {

Note que valor será o next passado pelo flash

if(valor=="next") { // faz isso }   if(valor=="prev") { // faz isso }   } // fecha a função principal

* responde o outro tópico.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 11
Sexo: Masculino
Localização: Guimarães, Portugal
Contato:

Editar .js Para Receber Variavel

20-08-2008 10:48

thnx pela ajuda web, encaminhou-me pelo bom caminho.

já pesquisei sobre o assunto e realmente não consegui ir avante com o pouquinho que me falta para terminar o modulo.

no flash realmente eu usei os dois botoes com a funcao de envio para o .js

bt_1.onRelease = function(){ getURL("javascript:eventoMod(next);") }

já no .js tratei de editar o codigo para receber o argumento

window.addEvent("domready",function eventoMod(valor){

até aqui tudo bem, o maior problema é ao editar o evento do botao actual para o meu em flash. O codigo original está

if($E(".gk_tabarts_button_prev", el)){ $E(".gk_tabarts_button_prev", el).addEvent("click",function(){ ACCAO DO EVENTO }

Eu consegui facilmente editar o botao substituindo o botao por

if(valor=="next"){ ACCAO }

Maravilha... o botao do flash acciona a funcao e muda as noticias para eventos. O meu problema é que se faço o inverso, ou seja, clico no botao para voltar às noticias edito o codigo do botao gk_tabarts_button_prev para if(valor=="prev") e não acontece nada.

Bem, a minha conclusão é que o evento do botão original assume o click, alterando o valor da variável "actual". Como eu tirei o addEvent ele executa a acção uma vez e continua no mesmo valor da "actual".

Para resolver o meu problema terei que criar um elemento referente ao botão do flash e simplesmente trocar o elemento do botao original pelo do flash e terá obrigatóriamente que resultar, estou correcto?

Desculpem o testamento ¨good¨
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Editar .js Para Receber Variavel

21-08-2008 11:55

Uma dica é que busque alternativas em scripts mais simples, assim, fica mais fácil a adaptação no flash. Se precisar posso ajudar.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado