segunda-feira, 16 de junho de 2008

Redimencionar MovieCliep Externos

Em um trabalho recente precisava baixar alguns arquivos swf externos e corrigir o tamanho.

Descobri que NÃO FUNCIONA Fazer assim:

MeuMovie.loadMovie("http://boolen.blogspot.com/exemplo.swf");
MeuMovie._width = 100;
MeuMovie._height = 100;


Isso ocorre porque estranhamente objetos externos não sofrem as influencias do MovieClip onde este foi inserido.

Qual a Solução?

O Objeto "Baixado" só pode ser redimencionado no momento em que é feito o Download e incluído no swf pai.

Para fazer isso, não é possível utilizar o loadMovie mas sim o loadClip (que faz o mesmo e um pouco mais)
Siga os passos:

  1. Primeiro é necessario criar um objeto Listener para relacionar os eventos do arquivo que devem chamar alguma função.

    var
    mclListener:Object = new Object();

  2. Em seguida criar o objeto que faz o Download dos arquivos

    var Loader_mcl:MovieClipLoader = new MovieClipLoader();

  3. Relacionar o evento LOAD aos eventos importantes que deve executar alguma ação.

    Loader_mcl.addListener(mclListener);

  4. Criar a função que será iniciada quando o Download for iniciado aqui estou redimencionando o arquivo que esta sendo carregado para o swf.

    mclListenerZ.onLoadInit = function(ob_mc:MovieClip) {
    ob_mc._width = 100;
    ob_mc._height = 100;
    };

  5. Em seguida inserir em algum lugar a função que vai fazer com que o processo comece.
    Aqui eu coloquei dentro de um Botão, mas claro que poderia estar externamente para ser executada ao iniciar o arquivo



    // Ao clicar em Quad_mc vai baixar meuswf.swf e redimencionar para 100x100
    Quad_mc.onPress = Baixar(p){

    Loader_mcl.loadClip("meuswf.swf", ondevai);

    }

Tudo Junto fica assim:

var mclListener:Object = new Object();
var Loader_mcl:MovieClipLoader = new MovieClipLoader();
Loader_mcl.addListener(mclListener);
mclListenerZ.onLoadInit = function(ob_mc:MovieClip) {
ob_mc._width = 100;
ob_mc._height = 100;
};
// Ao clicar em Quad_mc vai baixar meuswf.swf e redimencionar para 100x100
Quad_mc.onPress = Baixar(p){

Loader_mcl.loadClip("meuswf.swf",
ondevai);
}

O Único problema é que não posso redimencionar o MovieClip posteriormente, é apenas na hora que estou baixando.
E assim a minha idéia de Zoom pregressivo foi pro espaço

Nenhum comentário: