Ir para conteúdo

POWERED BY:

Arquivado

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

alessandro.connect

gotoAndPlay por url

Recommended Posts

Seguinte...

 

Tenho um link chamado www.site.com.br/index.php?page_id=10

 

Dentro dessa página tenho um swf. Quero mostrar determinada frame.

 

Algo assim: www.site.com.br/index.php?page_id=10&frame=110

 

Busquei em alguns fóruns e recebi o seguinte:

 

if (url = "http://www.site.com.br/?page_id=10&frame=110") {

gotoAndPlay(110);

} else {

gotoAndPlay(1);

}

 

Porém não funcionou!

Se alguém tiver um caso semelhante ou souber a resposta por favor poste, vai ser de grande válidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure sobre SWFAddress

 

Que da pra fazer o que você quer da... uma outra sugetão alem do address é usar FlashVars e buscar qual frame foi carregado e alterar.

 

Abraços

 

 

Bicho bacana... mais ainda não consegui o resultado. Pesquisei sobre isso, preciso de um exemplo pra me basear! E não acho essa nhaca!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se tu for nos parametros

<object>
<param name="src" value="bla" />
<param name="flashvars" value="&frame=$_GET['frame']&" />
<embed src="bla" flashvars="&frame=$_GET['frame']&" />

Ai tu vai passar por flashvars o valor para o flash ai tu recupera ou com

_root.frame

 

Ou faz um load na url

var vars:LoadVars = new LoadVars();
vars.load('index.html');

vars.onload = function(ok) { //L maiúsculo de onLoad
 if(ok){
	gotoAndStop(vars.frame);
 }else{
	trace('iiii faiooo');
 }
}

Lembrando que isso tem que testar em ambiente local ou online... caso contrario não vai funcionar o flashvars muito menos o $_GET

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se tu for nos parametros

<object>
<param name="src" value="bla" />
<param name="flashvars" value="&frame=$_GET['frame']&" />
<embed src="bla" flashvars="&frame=$_GET['frame']&" />

Ai tu vai passar por flashvars o valor para o flash ai tu recupera ou com

_root.frame

 

Ou faz um load na url

var vars:LoadVars = new LoadVars();
vars.load('index.html');

vars.onload = function(ok) { //L maiúsculo de onLoad
 if(ok){
	gotoAndStop(vars.frame);
 }else{
	trace('iiii faiooo');
 }
}

Lembrando que isso tem que testar em ambiente local ou online... caso contrario não vai funcionar o flashvars muito menos o $_GET

 

Abraços

 

Cara vi o que você me passou, pesquisei em mais lugares, mas ainda não obtive o resultado.

<param name="flashvars" value="servicos.swf&frame=<?php echo $_GET['frame']; ?>" />
<embed type="application/x-shockwave-flash" width="900" height="350" src="http://www.meusite.com/site/wp-content/themes/default/servicos.swf" allowscriptaccess="always" allowfullscreen="true" FlashVars="servicos.swf&frame=<?php echo $_GET['frame']; ?>"/>
</embed>

 

ele nao da nem um erro... nada! Ah tem uns detalhes dai neh...

 

To usando Wordpress... a página que está o swf, ta com a url assim:

http://www.meusite.com/site/?page_id=10

http://www.meusite.com/site/?page_id=10&frame=110 (aqui iria para o frame 110)

 

coloquei um código semelhante ao que você passou ... peguei outros na net.

 

 

Tenho uma dúvida relativa ao problema, talvez uma solução.

É o seguinte... no flash eu posso colocar âncoras na frame... posso colocar e recuperar com flashvars a âncora exata certo ?

Se da certo, como faço a url maldita passar essa ação pro flash.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você ta usando wordpress... dentro de POST você não consegue colocar $_GET a não ser que você tenha alterado o core do wordpress fazendo com que ele permita isso

 

Segundo

value="servicos.swf&frame=<?php echo $_GET['frame']; ?>"

 

Não foi isso que eu passei....

Eu falei algo assim:

value="&valor=frame&"

 

Preste atenção quanto aos Ands & e comercial... sem ele não funciona de jeito nenhum

Nome do parametro flashvars tem que ser igual ao embed... não pode usar um flashvars e outro FlashVars... o FLASH é burro... se não falar certinho ele não entende.

 

Ancoras do flash é a mesma coisa que passar o frame que ele se encontra... se você criar uma ancora dizendo patinho e fizer gotoAndStop("patinho"); ele vai pra aquela ancora.

Mas você vai ter que passar esse dado de qualquer maneira para o flash para que ele continue dali...

 

Outra sugestão que você pode fazer é usar SharedObject... e guardar o frame num cookie e verificar esse cookie com o flash mesmo na hora de carregar ele novamente para que ele continue dali.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só, ainda não deu certo, então vou tentar deixar mais claro o meu problema.

Segue o código na 1º frame do meu .swf

 

Eu tenho a frame 110, 123, 136, 149 e 162. Ai eu coloquei as condições abaixo:

 

if (_root.frame == 110) {
gotoAndPlay(110);
} else {
gotoAndPlay(1);
}

if (_root.frame == 123) {
gotoAndPlay(123);
} else {
gotoAndPlay(1);
}

if (_root.frame == 136) {
gotoAndPlay(136);
} else {
gotoAndPlay(1);
}

if (_root.frame == 149) {
gotoAndPlay(149);
} else {
gotoAndPlay(1);
}

if (_root.frame == 162) {
gotoAndPlay(162);
} else {
gotoAndPlay(1);
}

 

Ai no Wordpress, especificamente em uma página

 

<param name="flashvars" value="&frame=$_GET['frame']&" />
<param name="allowfullscreen" value="true" />
<embed  type="application/x-shockwave-flash" width="900" height="350" src="http://www.site.com.br/site/wp-content/themes/default/servicos.swf"  flashvars="&frame=$_GET['frame']&" />
</embed></object>

 

Então, do jeito que você passou ele não tava dando resultado, ai pesquisei em alguns fóruns e cheguei nisso, desse jeito ele da um loop meio louco, mas não funciona, enfim acho que ta quase, da uma mão pra eu terminar esse trampo.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma coisa que pode te ajudar é o seguinte, quando você pega uma variável por flashvars, loadVars e etc, ela sempre vem como String, então você precisa dar um parseInt da variavel no flash pro goto funcionar, porque você fazer um gotoAndStop(frame) sendo que o frame ele vai interpretar como "11", dai não vai funcionar, coloque assim:

_root.frame = parseInt(_root.frame);if (_root.frame == 110) {gotoAndPlay(110);} else {gotoAndPlay(1);}// continua seu código ...

 

Outra coisa importante é o tempo de execussão, quando seu flash é carregado, ele tem a variável lá pronta, que foi puxada por loadVars, mas pode ser e é bem provável que seu swf ainda não carregou os outros frames, então no momento que está chamando a ação, ele não vai funcionar porque o frame não foi carregado, seria então legal você fazer um preloader e só depois do preloader você executar a ação, e apenas para teste, tente colocar a variavel passada num campo de texto dinamico para que tenha certeza que está pegando a variável de modo certo Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara nao rolo ... consegui fazer um monte de coisa com flashvars, menos carregar a frame especifica...

Pow tem mta gente com dificuldade pra fazer isso na net e não tem um tuto completo, um post descente, tudo falando entre linhas e nada com resultado final ... Posta algo completo ai sobre isso pra ajudar a galera.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo completo?

 

Ok segue o seu algo completo:

AS 2.0

var tf:TextField = this.createTextField("tf", 1, 0, 1, 400, 28);
tf.embedFonts = true;
tf.autoSize = true;

var format:TextFormat = new TextFormat();
format.color = 0x195d94;
format.size = 28;

tf.setNewTextFormat(format);
tf.text = _root.pTitle.toUpperCase();

HTML

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="410" height="30" id="ptitle" align="middle">
 	<param name="allowScriptAccess" value="sameDomain" />
 	<param name="allowFullScreen" value="false" />
 	<param name="movie" value="index.swf" />
 	<param name="quality" value="high" />
 	<param name="wmode" value="transparent" />
 	<param name="flashvars" value="&pTitle=iMasters Forum&" />
 	<embed src="index.swf" wmode="transparent" flashvars="&pTitle=iMasters Forum&" quality="high" width="410" height="30" name="ptitle" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
 	</object>

Funciona e tem exemplo disso online

 

O fato é que não é complicado e por isso se você falar como pesquisar você vai cair num site em inglês que é o mais completo que eu conheço no assunto

Esse aqui:

http://www.permadi.c...Vars/index.html

 

Agora se você não consegue entender inglês... ai tem que procurar por uma resposta em português.

Que também existem milhões... e tem exemplos de como fazer isso de flashvars na parte de artigos e tutoriais.

 

Basta uma pesquisa mais a fundo no assunto.

 

Existem varias maneiras diferentes de se usar flashvars que todas podem acabar caindo na mesma solução simples e rapida, ou podem cair na solução demorada e mais especifica.

então cabe a você procurar exatamente o que você quer.

 

Eu já dei a dica de como passar a variavel...

Eu faço isso o tempo todo com php e funciona perfeitamente

 

Tem código meu funcionando em wordpress tem código funcionando em sites de cinema aqui do canadá... e por ai vai.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha entendo bem até de inglês, mas seguinte o que você mandou é pra criar uma caixa de texto e não "redirecionar pra uma frame específica" e não existe um monte de exemplo online. Cara agradeço a sua ajuda... mas valeu to ficando sem tempo jah!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É absolutamente a mesma coisa!!!!!!!!!

 

Pegue o código ali feito crie um flash com 500 frames e passe o frame que você quer e coloque um onEnterFrame para dizer qual frame você se encontra!!!

 

E você vai ver que funciona!

Ex:

AS2

this.onEnterFrame = function(){ trace(_currentFrame);}gotoAndStop(_root.Frame);
HTML:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="410" height="30" id="ptitle" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="false" /><param name="movie" value="frame.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="flashvars" value="&Frame=250&" /><embed src="frame.swf" wmode="transparent" flashvars="&Frame=250&" quality="high" width="410" height="30" name="ptitle" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" /></object>
OOOOO funcionaaaa!!! Imagem Postada!!!

 

O que você ta tendo problema deve ser como o carneirinho disse!!! no tempo de execução! crie um loader do SWF para que ele carregue o arquivo inteiro primeiro ai depois então envie para o frame desejado!.

 

Abraços

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.