Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Elektra

[Resolvido] Link html para repetir anima swf (banner)

Recommended Posts

Se o frame é = "x" (último) --> stop();

 

Se clicar no link "html" --> gotoAndPlay(1);

 

Preciso de uma idéia de como interagir o link "repetir animação" na página html para dar um "play" na animação do banner.

 

Penso que isso seja feito via JavaScript, mas não tenho idéia como declarar.

 

6ª feira é minha útima aula de lógica, quero aproveitar o auxílio do instrutor, mas devo considerar a necessidade dos outros alunos, tem muita coisa que eu quero saber como funciona.

 

Alguma dica pode facilitar muito.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Elektra

 

 

Tem muitas formas de se fazer isso, acredito que a melhor é usando ExternalInterface

 

um exemplo simples, no flash você cria a função que dá o play, e fala qual função do javascript ele esta fazendo referencia:

 

import flash.external.ExternalInterface;
ExternalInterface.addCallback("iniciarAnimacao", darPlay);
function  darPlay():void {
   gotoAndPlay(1);
}

agora no html, você cria a função javascript:

 

<script language="JavaScript">
  
     function thisMovie(movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
     }
     function clicouPlay() {
         thisMovie("id_do_swf_no_html").iniciarAnimacao();
     }

</script>

<input type="button" value="PLAY" onclick="clicouPlay();" />

 

 

eu não testei o codigo, mas basicamente é isso ai

 

teste para ver, qualquer coisa é só falar

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada Eder.

 

 

Perguntei ao instrutor e ele sugeriu usar uma função que execute um "refresh" no conteúdo da div onde está o swf.

 

Como ao carregar a página html a anima executa e para, faz sentido, ou seja, ao atualizar a div haveria a repetição.

 

Isso não foi visto em aula, apenas comentado.

 

Se souber me indicar qual o "termo" é usado no JavaScript para essa finalidade vou pesquisar para tentar fazer funcionar.

 

É uma forma simples para quem está começando. Certamente não é a maneira mais adequada, mas serve para exercício.

 

 

 

Ainda não conheço o uso do ExternalInterface no AS3(por enquanto).

 

O que desejo realmente é compreender o que estou fazendo e tentar criar algo ao meu alcance, o resto eu ainda vou aprender.

 

Mesmo assim vou tentar usar o código que você sugeriu. Valeu mesmo.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu até entendi o que o seu instrutor disse, mas não existiria essa opção de dar um "refresh" na DIV

 

o máximo que poderia fazer, seria re-carregar o swf, o que a meu ver não é uma boa opção, seria melhor

 

fazer uma função javascript. chamar uma outra dentro do flash, e manda-lo para o primeiro frame, como mostrei

 

 

esse seria um caminho melhor

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, meu instrutor não entende nada de Flash, eu que fiquei atormentando a vida dele.

 

(mais um com boas chances de fugir, rsrsrs)

 

Vou testar o que você mencionou, aos poucos eu aprendo como funciona.

 

Dou um retorno.

 

 

Obrigada Eder ^_^

 

Eder, eu tentei mas não consegui fazer funcionar (testei no server).

 

Fui hoje ver um livro de JavaScript (novatec) na Saraiva, em falta, vou ver em outros locais, ou encomendar.

 

Esta semana tenho aula de modelagem BD SQL, só depois disso vou poder me dedicar a compreender o uso do JavaScript. Tenho 1 mês de intervalo até encarar o AS3.

 

 

Assim que possível, volto para informar os resultados. Realmente quero aprender isso (e muito mais).

 

 

Obrigada pela atenção.

 

 

Abraços

 

Oi Eder, ainda não sei onde estou errando, testei várias vezes no server.

 

No swf, inseri no último frame (penso que o erro esteja aqui, no tipo de anima que estou usando):

 

stop();

import flash.external.ExternalInterface;
ExternalInterface.addCallback("iniciarAnimacao", darPlay);
function  darPlay():void {
   gotoAndPlay(1);
}

Aproveitei uma anima simples que eu tinha pronta --> http://img443.imageshack.us/img443/226/flashxn.jpg

 

 

No html, na tag head inseri o JavaScript, usei o FlashID que defini no painel properties para a div absoluta (usada para teste) --> "banner" (idem ao tittle - ao inserir o swf). Foi orientação do instrutor, eu perguntei (mas ele nunca viu nada semelhante ao que desejo fazer, isso era comum no Yahoo, não tinha um exemplo atual para mostrar).

 

 

Também testei com "apDiv1".

 

http://img149.imageshack.us/img149/7726/61839094.jpg

 

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>repetir_anima</title>

<script language="Javascript">
  
     function thisMovie(movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
     }
     function clicouPlay() {
         thisMovie("banner").iniciarAnimacao();
     }

</script>


<style type="text/css">
<!--
body {
	background-color: #400020;
}
#apDiv1 {
	position:absolute;
	left:74px;
	top:19px;
	width:513px;
	height:327px;
	z-index:1;
}

 

E em body, o button:

 

<input type="button" value="PLAY" onclick="clicouPlay();" />

 

 

Aqui o exercício publicado no server: Clique aqui

 

 

Agradeço muito se puder me auxiliar.

 

 

Abraços

 

Eder, novidades, está funcionando só no IE8 (mesmo assim adorei :D ).

 

Teste no server --> Clique aqui

 

Eu tinha testado apenas no Firefox (no momento estou sem o Safari, Opera e Chrome no PC).

 

 

Tem como rodar também nos outros navegadores?

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema desse ser esse mesmo que você disse, todo o código no ultimo frame, a parte em javascript esta correto

 

testa colocar todo o código no 1º frame, para ele registrar o ExternalInterface

 

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eder, só funciona no IE8 com todo o action no último frame, conforme publiquei o link.

 

 

Isso é que me deixou em dúvida, se a anima fosse inadequada não funcionaria em lugar nenhum, ou algum recurso é incompatível com o Firefox.

 

 

Testei conforme você sugeriu, com outros arquivos e de todas as formas que me ocorreu, mas aí não responde em nenhum navegador.

 

Se puder me dar uma idéia de outras possilidades, mesmo que eu ainda não saiba, vou pesquisar a respeito (tenho muito o que aprender).

 

 

 

Obrigada pela atenção

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

pensou que eu tinha esquecido né :D, só estava travado com umas coisas aqui

 

 

ok, eu fiz uns testes, e vi que o código do flash estar no primeiro ou no ultimo frame não faz diferença,

só por uma questão de organização, convêm deixa no primeiro

 

 

já o problema no firefox, é que ele não encontrava o swf, pois ele não tinha o atributo "name"

 

faça esse teste, no seu html, nessa parte, acrescente ele:

 

 

-----------------------

<param name="expressinstall" value="../Scripts/expressInstall.swf" />

<!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->

 

<!--[if !IE]>-->

<object type="application/x-shockwave-flash" data="sacks.swf" width="510" height="325" name="banner">

<!--<![endif]-->

<param name="quality" value="high" />

-------------------

 

depois rode no firefox, ele vai funcionar!

 

 

 

 

eu costumo usar o swfobject de outra maneira, e nunca tive problemas, use ele assim:

 

<div id="apDiv1">
 	<div id="banner"></div>
</div>
 
<script type="text/javascript">
	var flashvars = false;	
	var params = false;
	
	var attributes = {
  		wmode: "transparent"
	};

    swfobject.embedSWF("sacks.swf", "banner", "510", "325", "9.0.0", flashvars, params, attributes);
</script>

 

 

acredito que seja melhor, faça o teste para ver

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigada pela atenção Eder. :D

 

 

Só penso bem de você (eu não sou doida de pensar o contrário).

 

 

Andei pesquisando muito sobre lighbox/shadowbox, e li algo sobre o ExternalInterface dar galho no FF (não lembrei de anotar o local). Cada local mostrava a coisa de um jeito, fica difícil pra quem não tem conhecimento. E nada de funfar, rsrssss.

 

Foi legal que aprendi a liberar no site da Adode um direitório do PC para poder testar o JavaScript sem a necessidade de publicar.

 

Valeu mesmo, dou um retorno em breve.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif ... êeeee ... feliz, muito feliz ... deu certo!!!

Clique aqui

 

 

Muito obrigada querido amigo, só alguém muito generoso para se ocupar com um desejo tão insignificante.

 

 

Diga-se, não tão simples pra quem não sabe quase nada (mas deseja com todas as forças da alma aprender).

 

 

Consegui adquirir o livro de JavaScript e vou estudar.

 

 

 

Para contribuir, onde aprendi a liberar o JS para testes no PC -->

 

http://blog.ericksouza.com/122/

 

 

 

Grande abraço Eder. Tudo de bom pra você.

 

 

 

ps: novas emoções em breve, hahahhhhh (me aguarde) :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.