..:: MX Studio Fóruns ::..: trabalhar com transitions - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

trabalhar com transitions

#1 User is offline   aln 

  • Group: Membros
  • Posts: 48
  • Joined: 20-November 05

Posted 26 February 2010 - 01:15 PM

Como posso trabalhar com os efeitos de transitions na minha classe? Em minha classe loader, eu crio os loaders() para que os arquivos possam ser carregados e para adiciona-los ao palco utilizo o addChild(INSTANCIA), mas com a função:

TransitionManager.start(INSTANCIA, {type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut});

ao tentar usar a mesma instancia que uso para addChild, o flash me aponta um erro flash display dizendo que não é possível transformar load em movieclip... então como resolver isso?
0

#2 User is offline   Rodrigo Pixel 

  • Group: Moderadores
  • Posts: 1279
  • Joined: 07-May 07

Posted 26 February 2010 - 02:23 PM

O erro já está de dando alguma dica:
QUOTE
...não é possível transformar load em movieclip.


Deu erro por que esse método solicita um parâmetro do tipo MovieClip e você está querendo usar um objeto do tipo Loader.

Confere a sintaxe do método que você usou:
QUOTE
TransitionManager.start(myMovieClip, {type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut});


Help Flash TransitionManager start() method:
http://help.adobe.com/en_US/AS3LCR/Flash_1...tml#start%28%29

Sabendo disso, você pode tentar usar a técnica de Casting. Que basicamente fala pra um objeto de uma determinada classe(no seu caso Loader) deverá "agir/atuar" como outra classe(MovieClip).
No exemplo abaixo, estou dizendo ao flash que o objeto da classe Loader vai poder "agir/atuar"(casting) como sendo um objeto da classe MovieClip.

Veja se dá certo pro seu caso.

QUOTE
TransitionManager.start(INSTANCIA_LOADER.content as MovieClip, {type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut});

ou:
QUOTE
TransitionManager.start(MovieClip(INSTANCIA_LOADER.content), {type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut});


Help Flash:
http://help.adobe.com/en_US/AS3LCR/Flash_1...erators.html#as
http://help.adobe.com/en_US/AS3LCR/Flash_1...erators.html#is

Procura na net por casting actionscript 3 você acha mais exemplos sobre:
http://brianchau.wordpress.com/2007/12/07/...actionscript-3/
http://www.darronschall.com/weblog/2006/02...t-3-casting.cfm

Abraço.
0

#3 User is offline   BladeLorde 

  • Group: Membros
  • Posts: 87
  • Joined: 17-February 09

Posted 26 February 2010 - 02:24 PM

QUOTE(aln @ 26/2/2010 12:02:12) <{POST_SNAPBACK}>
Como posso trabalhar com os efeitos de transitions na minha classe? Em minha classe loader, eu crio os loaders() para que os arquivos possam ser carregados e para adiciona-los ao palco utilizo o addChild(INSTANCIA), mas com a função:

TransitionManager.start(INSTANCIA, {type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut});

ao tentar usar a mesma instancia que uso para addChild, o flash me aponta um erro flash display dizendo que não é possível transformar load em movieclip... então como resolver isso?


opa blz..........

vamos do principio:

sua variavel INSTANCIA é de q tipo? como ela foi criada? ( pra ficar mais facil para nos do forum te ajudar, posta essa parte do seu codigo)


outro como você instancio o seu transition manager?

tem esse exemplo q veio do site do mxStudio
//instancia um novo transition q vai agir no movieclip circulo
var myTransitionManager:TransitionManager = new TransitionManager(circulo);
//tp de animaçao
myTransitionManager.startTransition({type:Iris, direction:Transition.IN, duration:1, easing:None.easeNone, startPoint:5, shape:Iris.CIRCLE});

segue o link com o tutorial completo http://www.mxstudio.com.br/flash/estudo_de...nsitionmanager/


0

#4 User is offline   aln 

  • Group: Membros
  • Posts: 48
  • Joined: 20-November 05

Posted 02 March 2010 - 11:34 PM

Pessoal, era isso que estava perguntando... como converter a expressão... mas ainda sim não deu certo nenhuma das formas, continua acusado que é impossivel converter loader para movieclip, parece que o actionscript não aceita converter especificamente a classe loader, pois testei também da seguinte maneira:

var loader = Bitmap(evt.target.content);

e assim consegue converter o loader para um bitmap... mas como o transition necessita de movieclip não adianta nada...

código
CÓDIGO
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.display.MovieClip;


// URLS dos arquivos
var img1:URLRequest = new URLRequest("Untitled-1.jpg");
var img2:URLRequest = new URLRequest("robo_sket.jpg");

// LOADERS dos arquivos
var loader:Loader = new Loader();
loader.load( img1 );

var loader2:Loader = new Loader();
loader2.load( img2 );


// Chama Preloader e Imagens
loader2.contentLoaderInfo.addEventListener(Event.COMPLETE                , Exibir);
loader2.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS        , ProgressoLoad);

loader.contentLoaderInfo.addEventListener(Event.COMPLETE                , Exibir2);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS        , ProgressoLoad);

// PRELOADER
function ProgressoLoad(evt: ProgressEvent){
    var percentagem     = evt.bytesLoaded / evt.bytesTotal;
    percentagem_txt.text= Math.floor(percentagem * 100) + "%";
}

// Exibir arquivo no Stage
function Exibir2(evt: Event){
    TransitionManager.start(loader as MovieClip, {type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut});
    addChild(loader);
}
function Exibir(evt: Event){
    addChild(loader2);
}

// BOTÕES dos arquivos carregados
loader.addEventListener( MouseEvent.CLICK, imagem_1 );
loader2.addEventListener( MouseEvent.CLICK, imagem_2 );

function imagem_1 (nomeDoEvento:MouseEvent):void{
    trace( "Você clicou na imagem 1 ", nomeDoEvento.target );
}

function imagem_2 (nomeDoEvento:MouseEvent):void{
    trace( "Você clicou 2º imagem " + nomeDoEvento.target );
}


// Posição dos arquivos
loader.x = 100;
loader.y = 10;

0

#5 User is offline   Rodrigo Pixel 

  • Group: Moderadores
  • Posts: 1279
  • Joined: 07-May 07

Posted 03 March 2010 - 03:18 PM

Ok. Se não foi com Casting. Vamos tentar um truque ninja. ph34r.gif

Basicamente, cria um MovieClip, e depois adiciono o objeto Loader nesse MovieClip.
Agora que o objeto Loader já está dentro de um Movieclip, e é tudo que o flash quer saber nesse método TransitionManager.start(), que é ter um movieclip no 1º argumento.

Aqui funcionou que é uma beleza. alegre.gif
Veja se dá certo pro que você quer.

Obs:
Basta ter uma imagem qualquer com nome imagem.jpg na mesma pasta do seu arquivo Fla pra esse teste.

AS3:
CÓDIGO
import fl.transitions.*;
import fl.transitions.easing.*;


var imgUrl:URLRequest = new URLRequest("imagem.jpg"); //sua imagem externa carregada pelo loader
var arquivoExternoMc:MovieClip = new MovieClip(); //vai segurar o loader com conteudo carregado
var loader:Loader = new Loader(); //vai carregar imagem externa

loader.load( imgUrl ); //carrega imagem
loader.contentLoaderInfo.addEventListener(Event.INIT, exibirImagem); //aplico evento, quando carregado...

addChild(arquivoExternoMc); //adiciono o movieclip no stage
arquivoExternoMc.addChild(loader); //adiciono o objeto Loader dentro do movieclip



/*função de evento: Event.INIT,
quando completo o carregamento e iniciado(ativo/visivel) no stage,
começo manipular o objeto carregado.*/
function exibirImagem(e:Event):void
{
    trace("carregou imagem e aplica efeito");
    TransitionManager.start(arquivoExternoMc, {type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut});
}


Abraço.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)