Ir para conteúdo

Arquivado

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

henriqueilustrador

[Resolvido] inserir twitter no flash

Recommended Posts

Inseri uma janela do twitter num site em Flash que fiz, mas vejam como ficou:

www.opadeirodesevilha.com.br

Ele ficou acima do site, e não por cima dele (como eu pretendia).

Vejam o código do html e por favor me digam o que está errado.

Com certeza, eu colei o código do twitter no lugar errado:

 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

[b]<div style="width:176px;text-align:center"><embed src="http://twitter.com/flash/twitter_badge.swf" flashvars="color1=0&type=user&id=49039336" quality="high" width="176" height="176" name="twitter_badge" align="middle" allowScriptAccess="always" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br><a style="font-size: 10px; color: #000000; text-decoration: none" href="http://twitter.com/opadeiro">follow opadeiro at [url="http://twitter.com"]http://twitter.com[/url]
</div> CÓDIGO QUE COLEI DO TWITTER[/b]

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>O NOVO Padeiro de Sevilha</title>
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
</head>
<body bgcolor="#605546" leftmargin="0" topmargin="0">
<!--url's used in the movie-->
<a href="cardapioOK.swf"></a>
<!--text used in the movie-->
<!-- saved from url=(0013)about:internet -->
<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("This page requires AC_RunActiveContent.js.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
'width', '100%',
'height', '100%',
'src', 'index',
'quality', 'best',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'index',
'bgcolor', '#605546',
'name', 'index',
'menu', 'true',
'allowFullScreen', 'false',
'allowScriptAccess','sameDomain',
'movie', 'index',
'salign', ''
); //end AC code
}
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="100%" height="100%" id="index" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="index.swf" /><param name="quality" value="best" /><param name="bgcolor" value="#605546" /> <embed src="index.swf" quality="best" bgcolor="#605546" width="100%" height="100%" name="index" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque você não da um loadmovie nesse arquivo .swf do twitter direto do seu flash??

 

Ai nessa parte que indentifica o seu twitter:

 

flashvars="color1=0&type=user&id=49039336"
Voce coloca nas actions do flash.

 

Ouuuuuuuuu

 

você pode posicionar o flash do twitter via CSS em cima do seu site.

 

Abraços!

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pela resposta Leo, eu tinha feito isso mas não tinha colocado esse código. Aonde exatamente eu o coloco?

 

 

Porque você não da um loadmovie nesse arquivo .swf do twitter direto do seu flash??

 

Ai nessa parte que indentifica o seu twitter:

 

flashvars="color1=0&type=user&id=49039336"
Voce coloca nas actions do flash.

 

Ouuuuuuuuu

 

você pode posicionar o flash do twitter via CSS em cima do seu site.

 

Abraços!

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

var mcl:MovieClipLoader = new MovieClipLoader();

var omcl:Object = new Object();

omcl.onLoadComplete = function(mc:MovieClip) {

mc.color1 = "0";

mc.type = "user";

mc.id = "49039336";

}

mcl.addListener(omcl);

mcl.loadClip("http://twitter.com/flash/twitter_badge.swf", mc_conteiner); // Onde mc_conteiner é o MC que recebe o app

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Bruno!

Mas desculpe a minha ignorância, esse código que você passou é pra colocar no frame do meu arquivo index e eu crio e coloco no palco um MC chamado mc_conteiner? E não faço nada do loadmovie como sugeriu o Leo?

Agradeço a paciência.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Bruno!

Mas desculpe a minha ignorância, esse código que você passou é pra colocar no frame do meu arquivo index e eu crio e coloco no palco um MC chamado mc_conteiner? E não faço nada do loadmovie como sugeriu o Leo?

Agradeço a paciência.

A idéia do Leo está certa, mas a função loadMovie é meio crua e faltam eventos que verifiquem o estado do download. No seu caso, o ideal é o evento onLoadInit da classe MovieClipLoader, que representa o momento que o swf foi carregado e aberto.

 

Mas é isso mesmo: Coloque esse código no primeiro frame e criei um MovieClip chamado mc_conteiner, onde o seu app será carregado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza Bruno, funcionou em parte.

O filme do twitter apareceu por cima como eu queria (ainda preciso saber como colocar especificamente num lugar), mas o texto que deveria vir dentro da janela do twitter não apareceu, veio um texto padrão do twitter.

Veja no código abaixo (que diz respeito à página do twitter que teria o texto) se você encontra alguma dica para inserir no código que me passou:

 

<div style="width:176px;text-align:center"><embed src="http://twitter.com/flash/twitter_badge.swf" flashvars="color1=0&type=user&id=49039336" quality="high" width="176" height="176" name="twitter_badge" align="middle" allowScriptAccess="always" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br><a style="font-size: 10px; color: #000000; text-decoration: none" href="http://twitter.com/opadeiro">follow opadeiro at http://twitter.com

</div> CÓDIGO QUE COLEI DO TWITTER

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que tem a ver com a parte que diz:

href="http://twitter.com/opadeiro">follow opadeiro at http://twitter.com

 

Onde ele iria pegar o texto da página do twitter http://twitter.com/opadeiro

 

E também faltou essa parte que diz o tamanho desse swf (no caso do código deles - 176x176).

E abusando um pouquinho mais, como colocar isso no canto inferior direito?

 

Valeu mesmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Henrique, desculpe a confusão. Parece que o event ideal é onLoadComplete e não onLoadInit como havia dito num post anterior. Talvez a diferença seja no período de execução para o primeiro frame do arquivo. Teste de novo com a atualização do código que fiz no post anterior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tinha colocado aquele código que você passou aqui no fórum, com o onLoadComplete.

De qualquer forma, o código não tem nada que chame o texto do href="http://twitter.com/opadeiro">, e talvez isso que esteja faltando (além de determinar o tamanho do mc 176x176 e colocá-lo no canto inferior direito).

Você poderia colar o código aqui para mim?

Obrigado pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tinha colocado aquele código que você passou aqui no fórum, com o onLoadComplete.

De qualquer forma, o código não tem nada que chame o texto do href="http://twitter.com/opadeiro">, e talvez isso que esteja faltando (além de determinar o tamanho do mc 176x176 e colocá-lo no canto inferior direito).

Você poderia colar o código aqui para mim?

Obrigado pela força!

Nos meus testes, funcionou perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Bruno,

No meu também funcionou, mas não carregou o texto "Em breve, saiba o horário exato em que estão saindo do forno os produtos mais concorridos d'O Padeiro de Sevilha...ONLINE!!!", que é o que está no site www.twitter/opadeiro, ou seja, ele não atualizou o texto do twitter. No seu apareceu esse texto?

E também, o filme ficou muito grande, se sobrepondo ao visual do site, por isso é que eu queria ver contigo se tem como colocar no código para que o filme fique com 176x176 no canto inferior direito do site, é possível?

Obrigado e abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Henrique, por favor, siga os seguintes passos:

1. Abra um novo arquivo no flash;

2. Crie um MovieClip vazio, arraste-o da biblioteca para o palco e instancie-o de "mc_conteiner";

3. Clique no primeiro frame na timeline principal, pressione F9 e insira o seguinte código (Já passado anteriormente):

var mcl:MovieClipLoader = new MovieClipLoader();
var omcl:Object = new Object();
omcl.onLoadComplete = function(mc:MovieClip) {
	mc.color1 = "0";
	mc.type = "user";
	mc.id = "49039336";
}

// O tamanho do app carregado é de exatamente 176x176, mas você pode alterá-lo com as seguintes linhas:
omcl.onLoadInit = function(mc:MovieClip) {
	mc._width = 200;
	mc._height = 300;
}
mcl.addListener(omcl);
mcl.loadClip("http://twitter.com/flash/twitter_badge.swf", mc_conteiner); // Onde mc_conteiner é o MC que recebe o app

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maravilha Bruno!

Agora dá pra mudar o tamanho do filme.

Só falta então colocar lá no canto inferior direito e conseguir carregar o texto do www.twitter.com/opadeiro (o que está carregando não tem nada a ver com ele).

Conseguindo isso estaria perfeito!

Valeu pela insistente ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Henrique me procurou por email para me perguntar sobre este tópico. Parece que as seguintes palavras são trocadas dentro da tag code: onLoadComplete por onloadComplete e onLoadInit por onloadInit.

 

var mcl:MovieClipLoader = new MovieClipLoader();
var omcl:Object = new Object();
omcl.on LoadComplete = function(mc:MovieClip) { // retirar o espaço
        mc.color1 = "0";
        mc.type = "user";
        mc.id = "49039336";
}

// O tamanho do app carregado é de exatamente 176x176, mas você pode alterá-lo com as seguintes linhas:
omcl.on LoadInit = function(mc:MovieClip) { // retirar o espaço
        mc._width = 200;
        mc._height = 300;
}
mcl.addListener(omcl);
mcl.loadClip("http://twitter.com/flash/twitter_badge.swf", mc_conteiner); // Onde mc_conteiner é o MC que recebe o app

Não sei na verdade qual o critério do forum para essa substituição e nem estou acessando o bastante para ver se isso já foi discutido em qualquer outra ocasião, mas que fique apenas como nota aos que chegarem aqui com o mesmo problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

reportei o caso para o responsável pelo suporte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, sou novo aqui, não manjo muito de flash mas "engano"...

Fiz como o bruno ensinou, funciona perfeitamente quando rodo o SWF na minha máquina(abre o meu twitter com a cor e tamanho que selecionei) mas quando coloco na web a unica função que funciona é o tamnaho de resto fica como o arquivo original, sem alterar a cor, e o principal, sem exibir as msg do meu twitter.

Alguém sabe o erro?

 

Não sei se tem algo a ver, mas quando clico em cada linha do código o Flash acusa erro (marca em vermelho) os campos destacados abaixo:

 

var mcl:MovieClipLoader = new MovieClipLoader();

var omcl:Object = new Object();

omcl.onLoadComplete = function(mc:MovieClip) {

mc.color1 = "0";

mc.type = "user";

mc.id = "55984112";

mc.name = "twitter_badge"

mc.allowScriptAccess = "always"

mc.mode = "transparent"

}

//O tamanho do app carregado é de exatamente 176x176, mas você pode alterá-lo com as seguintes linhas:

omcl.onLoadInit = function(mc:MovieClip) {

mc._width = 180;

mc._height = 155;

}

mcl.addListener(omcl);

mcl.loadClip("http://twitter.com/flash/twitter_badge.swf",mc_conteiner); // Onde mc_conteiner é o MC que recebe o app

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Marcelo, bom dia!

 

Eu acabei tendo que fazer outra opção, já que as anteriores não funcionaram.

Criei no arquivo do site, meu próprio visual para o espaço que entraria o texto do twitter e coloquei um campo "dynamic text" com a variável "conteudo".

Criei uma action para chamar o texto do twitter: loadVariablesNum("twitter.php",0);

E um programador fez para mim este código em php, que deve ser salvo com o nome de "twitter.php" e salvo junto com o arquivo do site.

Lembrando que nesse código, tem que editar o nome do login do twitter e quantas mensagens você quer que apareça (no texto abaixo está configurado para 3 mensagens).

 

Crie no bloco de notas este arquivo e salve como:

twitter.php

 

&conteudo=<?php // "Conteudo" é o nome da variável que será inserida no Dynamic Text no Arquivo Flash

//Para alterar o Twitter basta mudar o nome do Login e a quantidade de Mensagens

$statuses = getTwitterStatus("coloque aqui o nome do login do twitter", 3); // ("Login", Qtd_mensagens);

?>

<?php

foreach ($statuses as $status) {

$msg = $status['message'] . ' - <b>' . $status['time'].'</b><br><br>';

echo $msg;

}

?>

<?php

 

function getTwitterStatus($twitterUser, $howMany = 1) {

//pegar mensagens via XML importado do Twitter

$url = sprintf("http://twitter.com/statuses/user_timeline/%s.xml?count=%d",

$twitterUser, $howMany);

$parsed = new SimpleXMLElement(file_get_contents($url));

 

$tweets = array();

foreach($parsed->status as $status) {

$message = preg_replace("/http:\/\/(.*?)\/[^ ]*/", '<a href="\\0">\\0</a>',

$status->text);

$time = niceTime(strtotime(str_replace("+0000", "", $status->created_at)));

$tweets[] = array('message' => $message, 'time' => $time);

}

return $tweets;

}

 

function niceTime($time) {

// Ajuste dos Tempos das Mensagens (data atual - data informada na mensagem)

$delta = time() - $time;

if ($delta < 60) {

return 'menos de 1 minuto atrás';

} else if ($delta < 120) {

return 'aprox 1 minuto atrás';

} else if ($delta < (45 * 60)) {

return floor($delta / 60) . ' minutos atrás';

} else if ($delta < (90 * 60)) {

return 'aprox. uma hora atrás';

} else if ($delta < (24 * 60 * 60)) {

return 'aprox. ' . floor($delta / 3600) . ' horas atrás';

} else if ($delta < (48 * 60 * 60)) {

return '1 dia atrás';

} else {

return floor($delta / 86400) . ' dias atrás';

}

}

?>&

 

Sempre "suguei" o fórum, fico contente em agora poder retribuir com alguma ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Henrique, primeiramente obrigado pela pronta ajuda...

 

Fiz como você falou mas está dando erro, no SWF aparece apenas: _level0.conteudo

Creio q o erro seja no php, será que quando você postou alterou alguma coisa?

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Marcelo!

 

O php está certo, pois copiei direto do arquivo do site da padaria, que está no ar funcionando.

Agora não sei se obrigatoriamente o swf tem que estar "publicado", rolando na internet para que o twitter funcione.

Posso estar falando besteira, mas sempre que eu ia testar o arquivo, simplesmente rodando o swf, não aparecia o texto do twitter. Seria isso talvez?

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.