Ir para conteúdo

POWERED BY:

Arquivado

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

s4muk4

[Resolvido] Criação de banner

Recommended Posts

Olá pessoal,

 

Estou a desenvolver um swf que passo 2 parametros (flashvars) pra ele.

Um é nome do arquivo (jpg, gif ou swf) que eu carregaria por loadmovie ou moviecliploader e o outro url onde iria inserir em um botao.

 

o problema é tem varios tipos de tamanhos, como q eu faria pra mexe no width e height desse swf ?

 

eu queria fazer só um arquivo q mexesse so no tamanho, pra nao ter que fazer um arquivo pra cada tamanho.

 

como seria esse procedimento?

 

obrigado

 

Samuel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para isso você vai ter que usar a classe MovieClipLoader();

 

Ai utilize esse código:

var mcl:MovieClipLoader = new MovieClipLoader();
var alvo:MovieClip = _root.createEmptyMovieClip("alvo", 1);

mcl.loadClip("suafoto.jpg", alvo);
//Ao inciar o clip
function onLoadInit(alvo) {
	redimensionar(alvo);
}
// Redimensiona
function redimensionar(alvo){
	alvo._xscale = 100;
	alvo._yscale = 100;
	if(alvo._width > alvo._height and alvo._width > Stage.width){
		alvo._xscale = ((Stage.width)*(100))/alvo._width;
		alvo._yscale = alvo._xscale;
	}
	else if(alvo._height > alvo._width and alvo._height > Stage.height){
		alvo._yscale = ((Stage.height))*(100))/alvo._height;
		alvo._xscale = alvo._yscale;
	} else {
		alvo._xscale = 100;
		alvo._yscale = 100;
	}
};
//Adiciono o listener
mcl.addListener(this);

Observe que usei como parametro o Stage.width e o Stage.height para deixar igual as imagens em tamanho e proporção

Basta mudar esses valores para o valor que você quer.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

o codigo ajudou, obrigado.

 

porem, eu fiz assim passei parametros na hora de chamar o flash

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim w, h, midia, url, reg

reg = 1

If reg = 1 Then
	w = 655
	h = 100
	midia = "full.jpg"
	url = "http://www.site.com.br"
ElseIf reg = 2 Then
	w = 130
	h = 85
	midia = "mid.gif"
	url = "http://www.site.com.br"
ElseIf reg = 3 Then
	w = 150
	h = 50
	midia = "low.swf"
	url = "http://www.site.com.br"
End If

%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
	body {
		margin:0;
		padding:0;
		background:0000FF;
		}
	
	.cl {
		width:100%;
		height:320px;
		text-align:center;
		}
</style>
</head>

<body>
	<div class="cl">
	  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="<%=w%>" height="<%=h%>">
		  <param name="movie" value="principal.swf" />
		  <param name="quality" value="high" />
		  <param name="wmode" value="transparent" />
		  <param name="flashvars" value="&midia=<%=midia%>&url=<%=url%>&w=<%=w%>&h=<%=h%>" />
		  <embed src="principal.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="<%=w%>" height="<%=h%>"  flashvars="&midia=<%=midia%>&url=<%=url%>&w=<%=w%>&h=<%=h%>"></embed>
	  </object>   
	</div>
</body>
</html>

ai qdo carrega o arquivo redimenciona de acordo com o swf principal nao fica na rea certa.

 

ai o codigo AS

 

// pega o nome do arquivo enviado por parametro
var arquivo = midia;

// pega a url enviado por parametro
var redirect = url;

// pega a largura enviado por parametro
var largura = w;

// pega a altura enviado por parametro
var altura = h;

txt1.text = arquivo;
txt2.text = redirect;

//botao
botao.onRelease = function(){
	trace(redirect);
	getURL(redirect, _blank);
}

// Carrega o arquivo
//loadarq._x = 0;
//loadarq._y = 0;
//loadarq.loadMovie(arquivo);

var mcl:MovieClipLoader = new MovieClipLoader();
var alvo:MovieClip = _root.createEmptyMovieClip("alvo", 1);
mcl.loadClip(arquivo, alvo);

//Ao inciar o clip
function onLoadInit(alvo) {
	redimensionar(alvo);
}

// Redimensiona
function redimensionar(alvo){
	alvo._xscale = 100;
	alvo._yscale = 100;
	if(alvo._width > alvo._height and alvo._width > Stage.width){
		alvo._xscale = (Stage.width*100) / alvo._width;
		alvo._yscale = alvo._xscale;
	}
	else if(alvo._height > alvo._width and alvo._height > Stage.height){
		alvo._yscale = (Stage.height*100) / alvo._height;
		alvo._xscale = alvo._yscale;
	} else {
		alvo._xscale = 100;
		alvo._yscale = 100;
	}
};

//Adiciono o listener
mcl.addListener(this);

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai vai o link da imagem:

 

http://www.s4muk4.xpg.com.br/foto.gif

 

a area preta seria o tamanho do W e H

 

a area cinza eh o arquivo carregado.

 

o certo era a area cinza ocupar a area preta, pq ta dimensionando assim?

 

o arquivo principal tem 655x320

 

pq o maior banner tem 655 de largura

e tem outro banner q tem altura de 320px

 

entao fiz um so

 

tem como ajustar isso ?

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom então ai você vai repassar o valor que eu lhe disse

do stage se vai pegar uma variavel...

Vai capturar do ASP por flashvars o tamanho do banner e vai jogar no código...

no lugar do width e do height que estão com o stage

 

tipo assim

// Redimensiona
function redimensionar(alvo){
	alvo._xscale = 100;
	alvo._yscale = 100;
	if(alvo._width > alvo._height and alvo._width > 655){
		alvo._xscale = (655*100) / alvo._width;
		alvo._yscale = alvo._xscale;
	}
	else if(alvo._height > alvo._width and alvo._height > 320){
		alvo._yscale = (320*100) / alvo._height;
		alvo._xscale = alvo._yscale;
	} else {
		alvo._xscale = 100;
		alvo._yscale = 100;
	}
};

//Adiciono o listener
mcl.addListener(this);

Ele vai redimensionar de acordo com o tamanho do seu clip... mesmo se a imagem for 1024x768 ela vai pegar um tamanho que seja equivalente a largurae altura...

 

Ou seja ela pode ficar menor do que seu banner... caso a sua imagem não seja redimensionavel ela vai ficar menor que o seu banner tendeu?

 

É isso que esse código faz.

 

Então se você ta querendo redimensionar alguma imagem que seja maior que seu banner para o tamanho real dele... e quer ele fique exatamente do mesmo tamanho... então você deve fazer uma imagem que seja redimensionavel para esse valor.

 

Se a imagem não for redimensionavel para o tamanho que você quer nessa proporção ela sempre irá ficar menor que o Stage

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao entendi muito bem.

 

entao so vai ser possivel cadastrar o banner com essas medidas. vai ser fixo.

 

1º banner (pode ser em jpg, gif e swf)

w = 655

h = 100

 

2º banner (pode ser em jpg, gif e swf)

w = 130

h = 85

 

3º banner (pode ser em jpg, gif e swf)

w = 150

h = 50

 

entao nao vai precisa mexer com nada de redimensionamento, so o arquivo principal.

 

o arquivo principal tem 655x320.

oq eu vou mexer eh no arquivo principal. onde é carregado essas imagens e swfs.

nele eu vou definir os mesmos tamanhos para a imagem ou swf carregado.

so q qdo você poe o valor diferenete no arquivo principal, o arquivo carregado precisa ficar com os mesmos tamanhos.

 

ex: o arquivo principal eu ponho 655x100. o arquivo carregado tb vai ser, a area cinza é uma imagem, ela ta pequena, o pq eu nao sei , sera q pq eu colokei valores no arquivo principal q diminuiu tudo?

 

nao é possivel ajustar o mc alvo, que carrega a imagem ficar com os mesmo valores de W e H ?

 

desculpe se nao consegui entende-lo ainda, ou eu me expressei mal.

 

vlw

 

Samuel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom cara acho que eu quem não entendi o que você quer

 

Você ta querendo cadastrar banners nos quais o tamanho já é pré definido.

 

E quando ver que um arquivo tem o tamanho por exemplo 458x60(tamanho de banner padrão) você quer modificar o tamanho do seu palco todo para se ajustar ao arquivo flash é isso???

 

Se for isso você teria de usar um código em JavaScript para isso...

 

Ou será que entendi errado?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao me lembro o q o _yscale _xscale fazem, e pra q serve o stage?

 

entao é mais ou menos isso mesmo. Mas nao entendi a parte do javascript, pode explicar?

 

tipo qdo você tem um arquivo por exemplo de 400x300, ai você redimensiona ele pra 200x300 la na tag object etc, os mcs, botoes, vao diminuir todo proporcional aquele tamanho nao é ?

 

entao no meu caso eu nao kero q gera essa proporção.

 

eu altero as propriedades width e height da tag object, mas o mc carregado vai ser igual ao palco total.

 

conseguiu entender ?

 

desculpe se nao acho as palavras certas pra dizer

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom,

 

_xscale e _yscale é a escala, ou seja 100 é o tamanho real do arquivo se eu setar ambas para 50 o arquivo vai ficar com 50% do tamanho real dele... ou seja vai dividi-lo pela metade.

 

Stage ou stage, é o palco onde você está trabalhando.

Utilizando o Stage.width e Stage.height você tá pegando o tamanho real do seu palco.

 

Por exemplo se você for lá em modificar documento e setar o tamanho de seu palco para 550x400 tamanho padrão dos arquivos em flash

Se você der trace(Stage.width + " , " + Stage.height); ele vai resultar num valor assim: 550 , 400.

 

O que você quer é modificar o tamanho do objeto MC sem alterar o conteúdo interno dele correto?

 

Para fazer isso você deverá construir um clip que seja dinâmico

 

Como faz isso?

var alvo:MovieClip = _root.createEmptyMovieClip("alvo", 1);
alvo._x = 0;
alvo._y = 0;

Fazendo isso o alvo terá um tamanho que corresponderá a imagem que ele carregar.

 

Então se sua imagem for 600x400 ele será do tamanho 600x400.

 

Para colocar coisas dentro dele como botões etc.

 

pode se usar

var alvo:MovieClip = _root.createEmptyMovieClip("alvo", _root.getNextHighestDepth());
alvo._x = 0;
alvo._y = 0;

var botao:MovieClip = _root.alvo.createEmptyMovieClip("botao", 2);
alvo.botao.attachMovie("botao", "botao", _root.alvo.getNextHighestDepth());
alvo.botao._x = 20;
alvo.botao._y = 20;

E pronto você adicionou o botão de sua biblioteca dentro da cena dinâmicamente.

 

Você pode fazer isso com qualquer imagem em vez de ser botão, basta você ir na biblioteca clicar na parte de linkage e colocar exportar para o primeiro frame.

 

Assim você estaria fazendo um banner dinâmico.

 

Agora porque eu expliquei isso tudo?

 

Bem simples, quando você cria um objeto movieclip e altera o tamanho do mesmo no palco, automaticamente você vai estar alterando todo conteudo dele interno, para fazer a alteração ser alterar o interno, você teria que copiar todas as layers internas do movieclip que você quer alterar o tamanho, remover-las, depois sair do movieclip, alterar o tamanho, clicar para entrar novamente no mesmo e colar as informações novamente lá dentro.

 

Se você fizer tudo dinâmico você não vai mais precisar fazer isso ;)

Pois não importa o tamanho da sua imagem o conteudo da biblioteca vai continuar inalterado e você vai continuar podendo jogar ele dentro do seu clip sem problema nenhum de alteração de tamanho.

 

Bom estou chegando perto do que você quer? rs

 

Espero estar ajudando não lhe complicando ainda mais.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom ta quse entendi sim, porem nao funcionou ainda....

 

 

o arquivo principal tem 655x320

 

qdo eu setei os W e H , ele foi para 655x100, porem o botao e o mc tb diminuiram.

 

ai eu mandei escrever o stage width e height e apareceu 655x320 (tamanho original) e nao do modificado (qdo setei para as minhas medidas)

 

qdo eu deixo o arquivo original 655x320, aparece certinho o carregado, x e y em 0 topo esq, so q o palco deveria ficar do mesmo tamanho, porem ainda nao esta

 

segue o arquivo .fla , se você puder olhar eu agradeço.

 

http://www.s4muk4.xpg.com.br/teste.zip

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai é como eu disse

 

Para mudar os valores do palco, é necessário usar uma função javascript que vai vir de fora...

E fazer com que o palco seja redimensionado para o tamanho que você quer...

Ou seja para o tamanho da imagem.

 

E também alem do javascript vai ter que usar um fscommand :)

 

Assim só pra você ter uma idéia ok?

Não sei se aplicaria ao seu caso

 

Mas baixe esse arquivo aqui:

exemplo.rar

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

berseck

 

consegui cara, deu certo o eu quiz fazer.

 

só foi acresecenter os comandos

 

Stage.scaleMode = "noScale";

Stage.align = "TL";

 

saiu do jeito certinho de como eu queria.

 

obrigado pela força ai

 

abs

 

Samuel

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.