Ir para conteúdo

POWERED BY:

Arquivado

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

Hylian

É preciso clicar para Acionar o flash...

Recommended Posts

Opa Galera, tudo bom? Desculpas aos moderadores caso não era pra postar aqui, mas achei o melhor lugar!

 

Estou com o Flash e o Dreamweaver CS4 e desenvolvendo um site com pequenas aplicações em Flash, menu e talz. Ou seja, minha página não é 100% em Flash, mas tem uns 3 ou 4 swf no mesmo arquivo HTML. Até ai beleza, mas o problema que eu estou me deparando, que não me estava acontecendo nas outras versões do Flash e Dreamweaver (aparitr da 8.0) é o fato de ter que clicar no SWF primeiro para aciona-lo e entao ele começar a funcionar no Browser.

 

Versões anteriores do Dreamweaver CS4 criavam o arquivo "Ac_Runactive_Content.js" que impediam esse tipo de coisa. Nesta nova versão, o Dreamweaver cria um #@?$%~ codigo do Flash, não cria mais esse arquivo JavaScript, e se você coloca o SWF dentro de uma tabela, ela fica com um espacinho que não é pra ter também.

 

Alguém sabe o porque esse tipo de coisa acontece? Ainda mais na versão mais recente do Dreamweaver e do Flash?

 

Grande Abraço a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hylian,

bom dia!

 

Você esta trabalhando com ActionScript provavelmente, se você puder postar o código seria mais fácil para desvendar esse mistério.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Hdesign.

 

Bom, o Action é diferente para cada aquivo Flash. E eu não faço o codigo no arquivo SWF, eu dou um #include no arquivo .AS.

 

Nao seria viavel eu postar o codigo todo aqui porque é bem grande. Mas o fato de eu ter que clicar pra acionar tem a ver com ActionScript? Pra fazer animação, eu uso o grupo Tween. Eu tiro a opção do usuario ver o menu usando Stage.showMenu = false. E estou usando AS 2.0 (porque ainda nao aprendi o 3.0.. T_T). Sera que tem alguma coisa a ver usar o AS 2.0 com o FlashPlayer 10?

 

E eu faço tudo orientado a objeto, eu não coloco programação nos MovieClips e assim por diante.

 

Eu fiz um pequeno teste criando um MovieClip normal, ao passar o mouse por cima o _alpha dele fica em 50% e ao tirar volta pra 100%. Coloquei em uma página HTML via Dreamweaver CS4. Usei vários Browsers pra testar. Alguns deles funcionam sem ter que acionar, mas depois de um tempo, clicando fora da página, dando Alt+Tab e voltando, tem que acionar... É bem bizarro isso....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho mesmo.

 

Bem, se você não esta usando o "onClick" é bastante estranho que isso esteja acontecendo.

 

Para isso é sempre bom a gente testar todas as possibilidades que possam estar deixando o seu arquivo assim:

 

1ª opção.

Faz o seguinte, tenta fazer esse mesmo processo como um teste, fora da pasta raiz. Se você colocou algum AC, tire todos deixando o arquico .swf somente com a animação limpa. Repita o processo de exportação do aquivo flash ao Dreamweaver e veja se vai funcionar. Esse é o menos provável que seja o seu problema.

(se não funcionar volte a trabalhar dentro da pasta raiz, já que lá não é o problema).

 

2ª opção.

Ao fazer a animação, teste apertando ctrl+enter e verifique se esta funcionando perfeitamente, mesmo depois de ter saido usnado alt+tab. Funcionou? ok!

Agora crie uma nova página HTML, e sem tabelas, exporte o arquivo .swf e teste. Você pode testar também usando <div>.

 

Teste também com outro tipo de navegador, se estiver usando o IE use o mozilla ou o contrário.

 

Vai descartando essas possibilidades. Foi assim que eu descobri vários errinhos bobos.

 

Se não conseguir de nenhuma forma, mande um link da página para que eu possa examinar.

 

Atenciosamente,

Henrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uhm. Não é exatamente isso.

 

Olhe, se voce tiver vários browsers instalados, entre com todos possiveis neste site. É meu portfolio, eu na verdade ainda estou montando, por isso ainda não tem conteúdo algum, e os textos estão inacabados e tals. Estou na parte da estrutura, e não na parte de alimentar com conteúdo, então não ligue hehehehe.

 

http://www.hynd.com.br/site/principal.html

 

Entre com diversos browsers pra ver o que estouf alando. Pelo Google Chrome roda perfeito. Pelo Opera é preciso acionar os flashs pra fazer funcionar. Pelo Firefox roda legal, mas as vezes é preciso ter que acionar algum flash... E assim por diante. Gostaria de que não precisasse acionar os flashs em nenhum Browser... T_T.

 

Abraços.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma das formas de você obter um SWF sem aquela ativação, seria por intermédio de java script:

 

Flash.js

if(Browser == undefined)
{
var Browser = {
  isIE: function(){ return (window.ActiveXObject && document.all && navigator.userAgent.toLowerCase().indexOf("msie") > -1  &&		  navigator.userAgent.toLowerCase().indexOf("opera") == -1) ? true : false; }

	};

}

var Flash = function(movie, id, width, height, initParams)

{

	this.html = "";	

	this.variables = new Array();
	
	this.flashversion = (typeof initParams != "undefined" && typeof initParams.flashversion != "undefined") ? initParams.flashversion : "7,0,0,0";
	
	this.attributes = {

		"classid": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",

		"codebase": "http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab#version=" + this.flashversion,

		"type": "application/x-shockwave-flash"

	};
	

	this.params = { "pluginurl": "http://www.macromedia.com/go/getflashplayer" };

	
	if(movie)
	{

		this.addAttribute("data", movie);

		this.addParameter("movie", movie);

	}

	

	if(id && id != null && (this.id = id)) 
	{
		this.addAttribute("id", this.id);
		this.addAttribute("name", this.id);
	}
	else
	{
		this.id = null;
	}
	

	if(width) this.addAttribute("width", width);

	if(height) this.addAttribute("height", height);

	

	if(initParams != undefined)
	{

		for(var i in initParams) this.addParameter(i.toString(), initParams[i]);

	}

};

Flash.version = "v1.8";

Flash.prototype.getObject = function()
{
	if(this.id == null) return null;
	try
	{
		if(window.document[this.id])
		{
			return window.document[this.id];
		}
		else
		{
			return document.getElementById(window.document[this.id]);
		}
	}
	catch(e) { return null; }
};


Flash.getObjectByExceptions = function(obj, excep)

{

	var tempObj = {};

	for(var i in obj)
	{

		var EOF = false;

		for(var j=0; j<excep.length; j++) if(excep[j] == i.toString()) { EOF = true; break; };

		if(!EOF) tempObj[i] = obj[i];

	}

	return tempObj;

};


Flash.prototype.addAttribute = function(prop, val){ this.attributes[prop] = val; };

Flash.prototype.addParameter = function(prop, val){ this.params[prop] = val; };

Flash.prototype.addVariable = function(prop, val){ this.variables.push([prop, val]); };


Flash.prototype.getFlashVars = function()

{

	for(var i=0, tempString = new Array(); i<this.variables.length; i++) tempString.push(this.variables[i].join("="));

	return tempString.join("&");

};

Flash.prototype.toString = function()

{

	this.params.flashVars = this.getFlashVars();

	if(Browser.isIE())
	{

		//IE

		this.html = "<ob" + "ject";

		var attr = Flash.getObjectByExceptions(this.attributes, ["type", "data"]);

		for(var i in attr) if(i.toString() != "extend") this.html += " " + i.toString() + " = \"" + attr[i] + "\"";

		this.html += "> ";

		var params = Flash.getObjectByExceptions(this.params, ["pluginurl", "extend"]);

		for(var i in params) if(i.toString() != "extend") this.html += "<param name=\"" + i.toString() + "\" value=\"" + params[i] + "\" /> ";

		this.html += " </obj" + "ect>";

	}
	else
	{

		//non-IE
		this.html = "<!--[if !IE]> <--> <obj" + "ect";

		var attr = Flash.getObjectByExceptions(this.attributes, ["classid", "codebase"]);

		for(var i in attr) if(i.toString() != "extend") this.html += " " + i.toString() + " = \"" + attr[i] + "\"";

		this.html += "> ";

		var params = Flash.getObjectByExceptions(this.params, ["extend"]);

		for(var i in params) if(i.toString() != "extend") this.html += "<param name=\"" + i.toString() + "\" value=\"" + params[i] + "\" /> ";

		this.html += " </obj" + "ect> <!--> <![endif]-->";

	}

	return this.html;

};

Flash.prototype.write = Flash.prototype.writeIn = function(w)

{

	if(typeof w == "string" && (w = document.getElementById(w)));

	if( w != null ) { w.innerHTML = this.toString(); }

	else if( w == undefined ) { document.write( this.toString() ); }

		else { return false; }

};


//automatization functions...

Flash.correctAll = function()

{

	if(!/msie/.test(navigator.userAgent.toLowerCase()) || !document.getElementsByTagName) return false;

	for (var i = 0, objects = document.getElementsByTagName("OBJECT"); i < objects.length;
		(objects[i].outerHTML ? (objects[i].outerHTML = objects[i].outerHTML, objects[i].style.visibility = "visible") : null), i++);

};

Flash.automatic = function(r)

{

	if(r && window.attachEvent)
	{	

		for (var i = 0, objects = document.getElementsByTagName("OBJECT"); i < objects.length; (objects[i].style.visibility = "hidden"), i++);

		window.attachEvent("onload", Flash.correctAll);

		window.attachEvent("onunload", function(){ window.detachEvent("onload", Flash.correctAll); });

	}
	else
	{

		Flash.correctAll();

	}

};

Site.html

<html>
<head><title></title></head>
<body>
<script type="text/javascript">
<!--
var swfconteudo = new Flash("../flash/teste.swf", "SWFMEIO", "575", "130");
swfconteudo.write();
//-->
</script>
</body>
</html>
Lembrando que, por ordem, você tem o caminho do Flash, um nome que você queira dar a ele, a largura e altura!

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.