Ir para conteúdo

POWERED BY:

Arquivado

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

Dan Herrera

Actionscript 1.0

Recommended Posts

Olá!

Reescrevi as variáveis e comentei esse código, que reproduz um efeito elástico.

No entanto, ele foi salvo na versão 6 do Flash Player e como Actionscript 1.0.

Quando tento salvar na versão 9 e Actionscript 2.0, ele não funciona.

Tem algum problema com o código ou com a lógica de versões (6.0 para 9.0 e AS 1.0 para 2.0)?

 

Obs.: Ele funciona perfeitamente na Versão 6.0 do Flash Player e 1.0 do Actionscript.

Ah, eu comentei até as funções if. O final eu não entendi.

Alguem sabe pra que servem as últimas linhas do código?

 

//ALTERE SOMENTE OS TRÊS PRIMEIROS PARÂMETROS PARA ALCANÇAR O RESULTADO DESEJADO

onClipEvent (load) {
	
	//Escala de aumento do movieclip: o quanto ele vai dobrar o seu tamanho
	escala = 1.8;
	velocidade = 0.7;
	elasticidade = 0.7;
	
	//Variável que representa o tamanho do movieclip
	tamanhox = _width;
	tamanhoy = _height;
	
	//Parâmetro para definir o aumento do movieclip
	parametrox = _width;
	parametroy = _height;
	
	//Variáveis que calculam as extensões horizontais (largura) do movieclip, como se fosse a área 'hit' do botão
	dir = _x-(_width*0.5);
	esq = _x+(_width*0.5);
	
	//Variáveis que calculam as extensões verticais (altura) do movieclip, a área 'hit'
	base = _y+(_height*0.5);
	topo = _y-(_height*0.5);
	
}
onClipEvent (enterFrame) {
	//Parâmetro que define quando o mouse está sobre o movieclip
	sobre = (_root._xmouse>=dir) && (_root._xmouse<=esq);
	
	//Parâmetro que define quando o mouse está fora do movieclip
	foraHorizontal = (_root._xmouse<dir) || (_root._xmouse>esq);
	foraVertical = (_root._ymouse<topo) || (_root._ymouse>base);
	
	//Se estiver sobre o movieclip, o tamanho do movieclip será igual a: seu tamanho*a escala
	if (sobre) {
		parametrox = tamanhox*escala;
		parametroy = tamanhoy*escala;
	}
	
	//Se estiver fora do movieclip, o tamanho do movieclip será igual a ele mesmo
	if (foraHorizontal) {
		parametrox = tamanhox;
		parametroy = tamanhoy;
	}
	if (foraVertical) {
		parametrox = tamanhox;
		parametroy = tamanhoy;
	}
	
	ax = (parametrox-_width)*velocidade;
	vx += ax;
	vx *= elasticidade;
	_width += vx;
	
	ay = (parametroy-_height)*velocidade;
	vy += ay;
	vy *= elasticidade;
	_height += vy;
	
}

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entre AS1 >> AS2 >> AS3 há diferenças no código conforme a versão, não vale apenas "SALVAR", é preciso refazer o Action Script.

 

Se usa uma versão mais atualizada do Adobe Flash (CS3 ou CS4), sugiro encarar direto o AS3 que oferece muito mais recursos.

 

Se possível, sugiro descrever qual o "efeito" realizado pelo AS1.

 

Uso AS3, fica difícil identificar o que você precisa.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entre AS1 >> AS2 >> AS3 há diferenças no código conforme a versão, não vale apenas "SALVAR", é preciso refazer o Action Script.

 

Se usa uma versão mais atualizada do Adobe Flash (CS3 ou CS4), sugiro encarar direto o AS3 que oferece muito mais recursos.

 

Se possível, sugiro descrever qual o "efeito" realizado pelo AS1.

 

Uso AS3, fica difícil identificar o que você precisa.

 

Abraços

 

Certo.. no caso, o efeito é este: http://www.flashkit.com/movies/Scripting/Physics/Elastic_-Owen_Sut-8909/index.php

Como ele ficaria em AS 2?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até onde alcança meu conhecimento, refere-se ao uso do "easing", que dá o efeito de "ficar quicando" (como por exemplo, uma bola que vai reduzindo o salto até parar).

 

No Flash CS4 com AS3 dá pra criar este efeito via timeline, usando o motion editor, ou via action, importando a classe Tween.

 

Vou deixar para você um link do help da Adobe para esse recurso em AS3 (em português), fica por sua conta conferir o uso para a versão AS2.

 

http://help.adobe.com/pt_BR/AS3LCR/Flash_10.0/fl/transitions/Tween.html

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela referência, Elektra!

Apesar de não ser exatamente o que preciso para agora, é um material que pretendo estudar.

De qualquer forma, eu consegui que o código funcionasse em AS2. O único problema agora é a versão.

Quando eu altero a versão (a atual é a 6.0) para 8.0 ou 9.0, o efeito elástico deixa de funcionar.

 

Você ou um alguem qualquer sabe por que isso acontece?

O que existe de diferente de uma versão do Flash Player para outra?

E há como manter o arquivo funcionando em uma versão mais recente (8 ou 9)?

Qual é a vantagem de se ter uma versão mais recente, afinal, nem todos os internautas atualizam suas versões do Flash Player.

Isso não pode prejudicar o acesso de um site?

 

Muitas perguntas, não? Eu poderia resolver algumas delas com algum tempo de pesquisa na internet, mas não tem me sobrado muito tempo ultimamente.

E acredito que seja esta uma das utilidades do forum, então... ;)

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, já ouvi relatos de colegas aqui no fórum, que usam o Flash CS4 com AS3 e precisam algumas vezes salvar o trabalho para a versão 9 do Flash Player para evitar problemas. A versão 10 é recomendável apenas quando o tipo de recurso usado no AS3 só funcione a partir desta versão.

 

A versão 9 do Flash Player já é referente ao Action Script 3.0 (e se não estou enganada ao Flash CS3).

 

No seu caso, penso que deva manter a versão do Flash Player 6, adequada para que a animação funcione.

 

Se conseguimos visualizar perfeitamente um arquivo publicado na rede, feito em AS1, e mesmo após convertido para AS2 roda sem problemas, não vejo necessidade de se preocupar com isso.

 

Quanto a documentação que mencionei, fica apenas como referencial, muito útil para identificar as mudanças entre as versões do Action Script.

 

Mesmo assim, sugiro aguarde a orientação dos colegas que trabalham com AS2.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bem, Elektra. Muito obrigado pelas orientações.

No entanto, eu acabei optando por utilizar a classe Tween.

Não dá a mesma ideia de movimento que o antigo código, mas supre as necessidades.

Neste caso, eu fiz:

 

import mx.transitions.Tween;
import mx.transitions.easing.*;
circulo.onRollOver=function(){
	var meuTween:Tween = new Tween(circulo, "_width", Elastic.easeInOut, circulo._width, circulo._width*2, 0.8, true);
	var meuTween:Tween = new Tween(circulo, "_height", Elastic.easeInOut, circulo._width, circulo._height*2, 0.8, true);
}
circulo.onRollOut=function(){
	var meuTween:Tween = new Tween(circulo, "_width", Elastic.easeInOut, circulo._width, circulo._width/2, 0.8, true);
	var meuTween:Tween = new Tween(circulo, "_height", Elastic.easeInOut, circulo._width, circulo._height/2, 0.8, true);

Em vista disso, gostaria de saber, quais são as propriedades que posso alterar? _x, _y, _width, _height e quais outras?

E uma outra coisa.. é possível mudar a velocidade da transição Elastic? Ou não, ela é padrão e absoluta, eu só posso incorporá-la sem alterar seus parâmetros de funcionamento?

 

Entenderam minha dúvida?

 

Muito obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo, como mencionei anteriormente, eu uso AS3.

 

Convêm aguardar os colegas desenvolvedores em AS2 para trocar uma idéia.

 

Sugiro dar uma conferida na documentação da Adobe para a classe Tween em AS2.

 

O link que encontrei é referente ao Flash CS4 com AS2, em inglês.

 

http://help.adobe.com/pt_BR/AS2LCR/Flash_10.0/help.html?content=Part2_AS2_LangRef_1.html

 

 

 

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.