Carregar imagem externa com loadMovie

Novembro 29, 2007 · 78 comentários

Autor: Rodrigo Gonçalves

Versão AS: Actionscript 2.0
Dificuldade: básico
Obs.: Para um bom entendimento deste tutorial,
é interessante ter familiaridade com a interface do programa Flash e lógica de programação.

Neste tutorial veremos como carregar uma imagem externa com o função loadMovie() do Actionscript 2.0.
O loadMovie pode ser utilizado em casos mais simples de carregamento externo. Porém, se precisar ter maior controle e algo mais complexo sobre carregamento externo, é melhor utilizar a classe MovieClipLoader() do AS2.

Donwload do exemplo:
No final deste tópico existe um exemplo do que podemos fazer com a função loadMovie.


Receita: O que precisamos pra fazer funcionar o loadMovie:

Ingredientes:
* 1 função loadMovie();
* 1 Movie clip, que será nosso alvo e deve ter um nome de instância para referência-lo no Actionscript;
* 1 imagem que deseja carregar podendo ser com as seguintes extensões:
jpg, png, gif(não animados) ou um arquivo swf.

Ingredientes anotados, "mão na massa"!

Abra seu Amigo Flash, crie um novo documento.
Caso você utilize a versão Flash CS3, na hora de criar um novo documento escolha a opção "Actionscript 2.0".

Crie 2 camadas com seguintes nomes:
Camada 1: actions
Camada 2: alvo_mc


Imagem 1: organizando camadas.

Na camada "alvo_mc" no frame (quadro) 1
Crie um Movie Clip vazio (Ctrl + F8) com as seguinte configuração:
* Name: mc_vazio
* Type: Movie Clip

A configuração deve ficar como a imagem 2 a seguir.


Imagem2: criando novo Movie Clip vazio.

O Movie Clip (MC) não deverá conter nenhum conteúdo inserido neste MC. Isto mesmo. Exatamente nenhum conteúdo.
Precisamos deste MC vazio para ser um "alvo" para imagem que irá carregar. Caso tenha conteúdo neste MC a imagem nova irá carregar no lugar da atual. Então, neste caso apenas deixamos o MC vazio para este fim de carregar imagem externa.
Após criar seu MC Vazio deve ficar algo parecido como na imagem 3 logo abaixo.


Imagem 3: 1 Movie Clip vazio.

Retorne para a cena 1 (scene 1). Este MC vazio que criamos estará na biblioteca.
Precisamos arrastar este MC para o palco (stage) e nomea-lo com uma instância pra "chamar" pelo Actionscript.

Selecione a camada "alvo_mc" no 1º frame. Abra a biblioteca (ctrl + L ou F11) em seguida arraste este MC vazio para o palco, posicione onde você quiser.
Obs: Lembra-se este MC será um "alvo" pra carregar a imagem desejada.
Então, imagine o tamanho em largura e altura em pixels pra determinar a posição mais adequada no palco pra este MC vazio receber sua imagem.


Imagem 4: arrastando o MC vazio da biblioteca para o palco(stage) do Flash.

Logo em seguida, selecione seu MC e insira um nome de instância: "alvo_mc"(sem aspas).
Obs: Você pode colocar outro nome de instância de sua preferência. Mas, para este exemplo utilizamos a intância “alvo_mc”.


Imagem 5: inserindo um nome de instância para o Movi clip.

Podemos agora chamar este MC pelo Actionscript.
Antes de inserirmos este código, você deve conhecer a sintaxe do loadMovie no Actionscript 2.0 isto facilita na criação do seu código:

loadMovie(endereco_url:String, Alvo:Objeto);

Dicas: Você pode encontrar algo mais detalhado no “Ajuda do Flash” (tecla F1).

Na camada "actions" no 1º frame abra o painel de Actions (F9).
Insira o seguinte código:

loadMovie("imagem.jpg", alvo_mc);

Uma outra maneira de declarar loadMovie seguindo esta mesma lógica:

alvo_mc.loadMovie("imagem.jpg");

A única diferença notável está na escrita, declaramos antes o objeto(Movie Clip) e depois o loadMovie(”enedereço da imagem”).

Entendendo o código

O endereço URL pode ser absoluto (http://…/imagem.jpg) ou um endereço relativo (imagem.jpg).
Para este exemplo foi apenas sugestivo para facilitar no entendimento.
Para ver em funcionamento este exemplo, basta você colocar um endereço URL da imagem ou criar uma imagem com o nome que desejar.

Mas, caso não carregar a imagem, alguns dos erros mais comuns são:
* A imagem está com outra extensão ou nome;
* A imagem não existe no local proposto;
* O endereço da imagem não existe;
* A sintaxe do Actionscript está incorreta;
* Nome de instância do Movie Clipe está errado.
* Não existe um nome de instância.

Pronto! Você terá algo parecido como a imagem logo abaixo. Basta você escolher uma imagem de sua preferência.


Imagem 6: resultado final carregando a imagem com loadMovie.

Esta imagem é apenas sugestiva. Isso nada mais é que um Movie clipe vazio com um nome de instância que determinamos neste tutorial e que recebe um endereço da imagem.

Criando MovieClip vazio com createEmptyMovieClip()

Agora que você entendeu o conceito do loadMovie, fizemos nos exemplos anteriores todo trabalho mais "manual". Podemos simplificar ainda mais apenas utilizando 2 linhas de código.
Iremos criar um MovieClip vazio dinamicamente pelo código e depois importar sua imagem/swf para o MovieClip criado.

O método utilizado para criar MovieClip Vazio é createEmptyMovieClip() da classe MovieClip para AS2.
Vamos ver a sintaxe para entedermos como utilizá-lo. Vejamos:

MovieClip.createEmptyMovieClip(name:String,   depth:Number) : MovieClip

Este método solicita 2 parametros/argumentos, sendo:
- name: referente ao nome de instância que você dará para o MovieClip a qual conseguiremos manipulá-lo via Actionscript. Deverá colocar o nome entre aspas(dupla ou simples) pois é um dado do tipo String.
- depth: é a profundidade que será anexado esse MovieClip referente ao seu alvo. O valor será do tipo numérico.

Quando isso for criar retornará um objeto do tipo MovieClip.

Vamos ao exemplo.
Abra um arquivo novo.
Na 1º camada, selecione o frame 1, abra o painel de Actions [F9] e insira o seguinte código:

1
2
_root.createEmptyMovieClip("alvoMc", 0);
alvoMc.loadMovie("sua_Imagem.jpg");

Na 1º linha, criamos um Movie Clip vazio(createEmptyMovieClip) na timeline principal do Flash(root/raiz) e demos o nome de instância alvoMc que ficará anexado em um nível de profundidade 0 da timeline principal(root);
Repare que, a sintaxe do método createEmptyMovieClip() solicita um alvo para criar seu MovieClip vazio, ou seja um alvo do tipo MovieClip. Mas, colocamos um _root. Por que?
O _root é considerado pelo Flash como uma MovieClip principal(raiz) criado por padrão pelo programa, por isso quando utilizamos _root, estamos nos referindo a timeline principal do Flash.
Você poderia criar um MovieClip vazio em outro MovieClip criado. Ex.:

1
seuMovieClipAqui.createEmptyMovieClip("alvoMc", 0);

Na 2º linha, apenas aplicamos o carregamento de uma imagem externa no alvo desejado utilizando o método loadMovie que você já conhece nos exemplos anteriores.

Não tem nada inserido manualmente no stage, apenas o código.

Você pode adaptar em seu projeto. Isso pode ser muito útil para aplicações mais simples.
Caso queira criar por exemplo “galeria de imagens” onde você precisa de maior controle no carregamento. É aconselhável utilizar a classe MovieClipLoader() do AS2. No Help do Flash(atalho F1) você encontra mais informações e exemplos de como utilizá-lo.

Aqui um tutorial bacana sobre MovieClipLoader feito pelo Tiago Braga.


Donwload 1 - exemplo com função loadMovie.

Donwload 2 - exemplo com função loadMovie.
Donwload 3 - exemplo com função loadMovie.
Donwload 4 - exemplo com função loadMovie.
Donwload 5 - exemplo com função loadMovie.

Abraços e até a próxima!

Rodrigo Gonçalves
Equipe Alvo Web

Creative Commons License
O Conteúdo do Alvo Web Developers está licenciada sob uma Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.

Categoria: ActionScript

78 respostas ↓

  • 1 Pedro Correia // Nov 30, 2007 at 10:21 am

    Boa tarde!
    Eu tenho a seguinte situação:
    tenho uma intro page para um site e quero que quando acabe essa mesma intro passe automaticamente para a página seguinte. A questão é que a intro e a página estão feitas ambas em flash, mas em ficheiros distintos.
    Será que existe a possibilidade de me dares uma ajuda nesta situação?
    Muito agradecido pelo tempo e incomodo causado.
    Cumprimentos Pedro Correia

  • 2 Rodrigo // Dez 5, 2007 at 7:31 am

    Pedro,

    O loadMovie() pode carregar um arquivo SWF. Ou seja se seu site for inteiro feito em Flash você terá um SWF dentro de outros SWF.
    Mas você terá que “preparar” altura e largura em pixels do arquivo do SWF principal para receber “sem cortes” o outro SWF.

    Por exemplo:

    Imagine que você tem a timeline com sua animação até o quadro 50.
    Em seguida terá que parar no quadro seguinte(quadro 51) e fazer o método loadMovie(), carregando seu site em SWF.

    Ficaria mais ou menos assim:
    no quadro depois da animação(ou onde quiser começar a carregar).
    Ficaria mais ou menos parecido com isso no seu código:

    stop();
    loadMovie(”meuSiteEmFlash.swf”, alvo_vazio_mc);

    Apenas paramos a timeline no quadro atual, no exemplo quadro 51, para “dar tempo” de carregar o arquivo desejado usando o método loadMovie().

    Mas lembra-se, o loadMovie carrega imagens, jpg, gif(não animados), png, swf.

    Espero ter ajudado em algo.

    Abraços.

  • 3 Ana Cecilia // Fev 16, 2008 at 9:08 am

    Rodrigo, parabéns pelo excelente tutorial, mas estou com uma dúvida.

    Na minha página eu preciso colocar dois mc para carregar coisas diferentes, como eu coloco isso no meu btn, crio 2 mc tipo alvo e alvo1 e no btn para chamar eu coloco como?

  • 4 Rodrigo // Fev 17, 2008 at 1:57 am

    Ana Cecilia, valeu pela visita.

    Não precisa criar outro mc. Basta criar apenas uma vez este mc vazio a qual estará na biblioteca, e arrastar o mesmo mc quantas vezes precisar no palco e deve dar nomes diferentes de instâncias para estes receberem imagens diferentes.

    ex:
    alvo_mc_1.loadMovie(“imagem_1.jpg”);
    alvo_mc_2.loadMovie(“imagem_2.jpg”);

    etc…

    Isso irá carregar imagens diferentes. Porem, não consigo fazer com que estas imagens sejam clicadas por exemplo como um botão. Neste caso que sitou(se foi isso que entendi).

    Eu costumo fazer da seguinte forma que talvez pode ser útil para ti. Crio 3 camadas nesta ordem para este exemplo:

    - camada 1: actions;
    - camada 2: botão invisível;
    - camada 3: imagem mc.

    Sendo a 1º camada recebe as actions do loadmovie e da função do botão, ficando um exemplo no 1º frame da camada “actions”:

    //carrego a imagem dentro de um mc vazio
    alvo_mc_1.loadMovie(”imagem_1.jpg”);

    //crio uma função para o botão invisivel
    bt_1.onRelease = function()
    {
    //aqui coloco minha ação/metodo/função etc
    }

    Suponhamos que você tenha uma imagem de 30×30 pixeis, com a posição em _x e _y definidas no palco/stage.

    Você deve criar também um símbolo do tipo botão a qual será “invisivel” (onde tem somente a área hit/área clicável do bt mas não pode ser vista pelo usuário) que tenha essa area util do mesmo tamanho da imagem(30×30) e da mesma posição em _x e _y da imagem(a qual é o “mc vazio”).

    Ou seja, quando o usuário passar o mouse sobre a imagem carregada com loadmovie e clicar e soltar(onRelease) para sofrer uma função.

    A camada “botão invisível” deve estar em uma camada acima da camada “imagem mc”, para podermos clicar no botão e “simular” que a imagem que o usuário vê é de fato um “botão”.

    Lembra-se de dar nomes de instâncias nos objetos/símbolos criados no palco para poder manipula-los com actionscript.

    Espero que tenha ajudado em algo.

    Abraços.

  • 5 marcelo // Mar 4, 2008 at 1:27 pm

    olá, tudo bem? parabéns pelo site. finalmente alguns tutoriais bem escritos.
    será que vc pode me ajudar numa situação?
    tenho noções básicas em flash e gostaria de
    inserir um botão dentro de um stage. esse botão
    abriria uma imagem dentro desse stage. clicando com o mouse sobre a imagem ela some ou depois de alguns segundos ela some sem precisar clicar…
    será que pode me ajudar?
    agradeço antecipadamente.

    abraço.
    marcelo.

  • 6 Rodrigo // Mar 4, 2008 at 5:35 pm

    Valeu Marcelo pela visita.

    Vamos ver se eu entendi a sua situação.

    Se você quer inserir uma imagem apenas quando clicar sobre o botão, e logo em seguida essa imagem sumir após alguns segundos já pré-estabelecidos por você.

    Sugestão, você pode inserir o método loadMovie() dentro do evento do botão. E fazer um setTimeout() para chamar a função que descarrega a imagem depois de alguns segundos.

    Crie um símbolo do tipo botão(button) e insira um nome de instância para este botão que estiver no palco.
    Crie também um movieClip vazio para carregar a imagem. lembra-se de inserir este movieClipe no palco e colocar um nome de instância para ele.(da mesma maneira que no tutorial acima)

    Tendo seu movie clipe como alvo da imagem e o botão que irá carregar a imagem somente quando clicar sobre ele.
    Denominei para o botão o nome de instância de “meuBotao” e para o MovieClipe vazio denominei um nome de instância de “meuMovieClipAlvoVazio” para este exemplo

    Abra o painel de actions no 1º frame e insira este código abaixo
    Obs: O próprio código está comentado. Lembra-se de nomear as instâncias do botão e movie clipe vazio.

    //quando clicar e soltar o botão faça
    meuBotao.onRelease = function(){

    //carrega a imagem pelo metodo loadMovie
    meuMovieClipAlvoVazio.loadMovie( "coloque o endereço da imagem aqui" );

    //função que irá descarregar a imagem do palco.
    function someImagem(){
    //descarrega a imagem pelo metodo unloadMovie
    unloadMovie( meuMovieClipAlvoVazio );
    }

    // após 3 segundos executa a função "someImagem" apenas uma vez.
    // tempo definido em milesegundos
    setTimeout( someImagem, 3000 );

    }

    Dica:
    De uma olhada sobre os métodos de setTimeout() e setInterval(). Tem tutorial desse métodos aqui no AlvoWeb.
    Você pode conhecer mais sobre esse métodos verificando também o painel de ajuda (atalho F1).
    Espero ter ajudado em algo.

    Abraços.

  • 7 marcelo // Mar 7, 2008 at 8:03 am

    ajudou sim… problema resolvido.
    muito obrigado.
    abraço.

  • 8 Giscard Falcão // Mar 30, 2008 at 7:29 pm

    Rodrigo, Parabéns por esse site maravilhoso, onde podemos buscar soluções muito boas, bom é o seguinte, tenho um MC com alguns botões dentro dele. Gostaria que quando clicasse nesses botões, um .SWF carregasse dentro de um outro MC, instanciado por conteudo, que está fora do MC botões… to usando esse codigo em uma camada

    filme1.onRelease = function(){
    loadMovie(”bd.swf”, conteudo);
    }

    e no stage instanciando um botão como filme1, mais não funciona com os botoes dentro de um MC, obrigado desde já

  • 9 Rodrigo // Mar 30, 2008 at 9:44 pm

    Giscard Falcão,

    Acredito que o problemas esteja com relação a caminho do seu código.
    Se não carrega ou a imagem não está no local certo ou seu caminho do botão está errado.

    Faça o seguinte teste:
    crie um novo documento para As2. Para este exemplo, criei 2 camadas para organizar.
    1º camada: “Actions”
    2º camada: “Objetos”

    Na sua camada de Objetos vamos supor que criamos 3 botões e selecionamos todos este 3 botões convertemos em um único símbolo Mc, que é seu grupo de botões e denominei como grupoBotaoMc para nome de instância no Stage.
    E ainda dentro deste mesmo MC(grupoBotaoMc) existe mais 3 botões a qual cada um tem uma instância que denominei de:
    Para o botão numero 1: botao1
    Para o botão numero 2: botao2
    e finalmente para o botão de numero 3 coloquei o nome de instância: botao3

    Lembrando que estamos ainda dentro do seu grupoBotaoMc.

    depois que demos nomes de instância á cada botão do grupo de botões. Retorne a cena principal(timeline principal).
    Ainda na camada “Objetos” crie um movieClipe vazio (atalho Ctrl+F8) e dê o nome de instância como alvoVazioMc. Lembra-se de colocar para este MC vazio um nome de instância no stage assim como fazemos neste tutorial de loadMovie. É este MC Vazio(alvoVazioMc) que receberá o conteúdo externo (ex: um arquivo swf, jpg etc)

    Agora depois de termos nosso objetos devidamente com nomes de instâncias no stage. Vamos controlar as Actions dos botões(botao1, botao2, botao3) que estão dentro do nosso MC grupoBotoesMc:
    No actionscript para encontrarmos o caminho utilizamos o ponto entre cada movieClip
    para chegarmos até o botão 1, precisamos passar antes pelo grupoBotaoMc e só asism depois conseguir chegar até o botão número 1:
    grupoBotaoMc.botao1

    para chegar no botão número 2:
    grupoBotaoMc.botao2

    e no botão número 3:
    grupoBotaoMc.botao3

    Como iremos inserir o código na timeline principal esse caminho é importante.

    na timeline principal, no 1º frame da camada Actions, digite:

    // grupo de botões
    //botão 1
    grupoBotaoMc.botao1.onRelease = function(){
    _root.alvoVazioMc.loadMovie("imagemExterna1.jpg");
    trace("carrega IMAGEM 1");
    }
    //botão 2
    grupoBotaoMc.botao2.onRelease = function(){
    _root.alvoVazioMc.loadMovie("imagemExterna2.jpg");
    trace("carrega IMAGEM 2");
    }
    //botão3
    grupoBotaoMc.botao3.onRelease = function(){
    _root.alvoVazioMc.loadMovie("imagemExterna3.jpg");
    trace("carrega IMAGEM 3");
    }

    Faça um teste colocando o conteúdo(SWF, JPG) na mesma pasta do seu arquivo Fla.
    para este exemplo estou carregando um arquivo .jpg. Mas poderia ser um arquivo .swf. basta alterar o endereço.

    Teste seu filme(Ctrl + Enter).
    Ao clicar no botão desejado irá carregar a imagem(conteúdo externo) para o MovieClip vazio.

    Abraços e valeu pela visita ao site.

  • 10 Thiago // Abr 1, 2008 at 12:02 pm

    Rodrigo.
    Prmeiramente tenho que lhe dar meus sinceros PARABENS pela forma como vc cria seus tutoriais. Muito Bom.
    Venho aqui para pedir um HELP

    seguinte…
    sou Educador na area de web design, a alguns meses e ainda tenho algumas duvidas quanto as ações no action script, principalmente em se trantando de loadMovie, e as varias formas de criar CARREGANDOS, se possivel gostaria de ler um comentario seu falando das diversas formas de se criar por exemplo, uma galeria “fina” com loadMovie, criar um carregando simples e objetivo utilizando as varias formas.Tudo isso pra dar uma incrementada no conteudo.

    Desde já agradeço.Seu site é Muito Bom
    Aguardo anciosamente.Vlw.

  • 11 Rodrigo // Abr 1, 2008 at 12:54 pm

    Thiago,

    Valeu mesmo pela visita ao site.

    Bom o loadmovie é um pouco limitado para criar galerias mais complexas por exemplo ter mais controle com imagens externas ou filmes(SWF) externos.

    Uma das possíveis maneiras mais “simples” de fazer uma “galeria” relativamente “simples”. É você criar para cada imagem(isso mesmo para cada imagem) um arquivo SWF. Onde que neste mesmo SWF terá sua imagem inserida manualmente.
    Então você cria um preloader mais comum do AS2, apenas para “avisar” o usuário que tem algo ali para ser visto e depois de carregado fazer alguma animação com está imagem conforme você desejar.

    Então, partindo desse conceito. Supomos que você teria os seguintes SWF´s para cada imagem:

    imagem1.swf terá uma imagem + um preloader
    imagem2.swf terá uma imagem + um preloader
    imagem3.swf terá uma imagem + um preloader

    Agora no seu SWF principal, onde você receberá estás imagens externas(SWF externos) que definimos acima.
    Você colocaria ação para cada botão(ex: botao1, botao2, botao3) para “chamar” estas imagens em um alvo(MovieClip vazio).
    Logo abaixo um exemplo com loadMovie para 3 botões no swf principal, a qual cada loadMovie corresponde a um SWF externo e carrega em um “alvo”(MC vazio).
    Ex.:

    botao1.onRelease = function(){
    alvoVazioMc.loadMovie("imagem1.swf");
    trace("imagem 1");
    }
    botao3.onRelease = function(){
    alvoVazioMc.loadMovie("imagem2.swf");
    trace("imagem 2");
    }
    botao2.onRelease = function(){
    alvoVazioMc.loadMovie("imagem3.swf");
    trace("imagem 3");
    }

    Até aí tudo bem, bem simples e funcional para coisa mais simples.
    Agora, imagina se você tiver que alterar uma por uma? Ou pior ainda, criar mais e mais imagens com SWF externo para cada. você não teria tanto controle na manutenção disso além de perder um bom tempo alterando uma por uma e gerando um novo swf para cada nova imagem.
    Já percebeu a possível “mão-de-obra” que isso irá lhe causar se tiver muitas imagens pra fazer com loadMovie. Pode até ser digamos “fácil” mas é bem mais trabalhoso e leva um certo tempo na manutenção dos seus arquivos.

    Bom, para isso se quiser algo mais controlado e mais pratico pra manutenção de arquivos externos é pode ser aconselhável utilizar a classe MovieClipLoader do AS2, com ela você terá mais “controle” com arquivos externos. É legal dar uma olhada no Help do Flash para AS2 que explica algo sobre isso.
    Estou aprendendo sobre ela também. Existe um artigo em português que explica muito bem sobre a diferença entre MovieClipLoader e loadMovie. Vale apena conferir está matéria entre muitas outras que existe disponíveis na internet sobre esse tema.

    De resto, só depende de pratica mesmo pra pegar o jeito e entender legal como funciona.

    Abraços e valeu.

  • 12 Leonardo Andrade // Abr 17, 2008 at 12:12 pm

    Boa Tarde Rodrigo,

    Bem, acontece o seguinte, eu usei como base alguns de seus tutoriais, e criei um swf q puxa 3 imagens externas no MV criei botões e td mais, fikou uma blezinha, até ai td bem, o problema é q como coloquei no site, ele pode demorar para carregar entre uma imagen e outra dependendo da conexão do usuario, oq eu queria era colocar um “carregando” enquanto a imagen não aparece por completa, vc pode por favor me explicar como eu coloco o “carregando” no meu .swf….

    Obs:. Parabens pelos tutoriais, eles estão muito bem elaborados.

  • 13 Rodrigo Gonçalves // Abr 17, 2008 at 9:08 pm

    Leonardo,

    Bom, para isso se quiser algo mais controlado e mais pratico pra manutenção de arquivos externos é pode ser aconselhável utilizar a classe MovieClipLoader do AS2, com ela você terá mais “controle” com arquivos externos. É legal dar uma olhada no Help do Flash para AS2 que explica algo sobre isso.
    Estou aprendendo sobre ela também. Existe um artigo em português que explica muito bem sobre a diferença entre MovieClipLoader e loadMovie. Vale apena conferir está matéria entre muitas outras que existe disponíveis na internet sobre esse tema.

    De resto, só depende de pratica mesmo pra pegar o jeito e entender legal como funciona.

    Abraços e valeu.

  • 14 Paje (Douglas) // Mi 28, 2008 at 10:16 am

    Ola…

    Gostaria de fazer o seguinte… qndo clicar no btn abrir a imagem.. ate essa parte sei fazer.. contudo gostaria que ela fosse aberta em um tamanho determinado.. pq com isso consigo criar um album de fotos .. com jpg pequenas e qndo clicarem nas pequenas abrir ela com um outro tamanho … sem q mexa na imagem..

    Desde ja venho ha agradece a atencao.

    Gentilmente: Douglas

  • 15 Bruno // Jun 11, 2008 at 2:02 pm

    Boa Tarde Rodrigo!

    Primeiramente parabéns pelo site, estou sempre tirando dúvidas aqui nele…

    Mas tenho uma dúvida aqui no meu flash…se vc puder me ajudar…

    é o seguinte: queria saber como faço pra clicar em um botão do meu menu e abrir um submenu embaixo dele, empurrando o resto do menu pra baixo, além dele abrir o novo conteúdo ao lado.
    E se depois eu clicar em um botao q não tem submenu, o submenu do outro botao(que estava ativado) despararece, fazendo o menu voltar ao normal. Lembrando que meus botoes estão em um movieclip.

    Agradeço qualquer ajuda e atenção dispensada.

    Abraços,Bruno.

  • 16 joão // Jun 13, 2008 at 10:06 am

    Olá, funcionou tudo blz. Mas só precisava fazer um preloader enquanto carrega cada imagem. Será que é possível?

  • 17 Rodrigo // Jun 13, 2008 at 10:31 am

    João,

    Com a função loadMovie() é algo realmente mais simples. Você até consegue ter preloader nas imagens, mas faz muita volta pra manipular isso.

    Caso queira algo mais complexo, montar por exemplo galerias de imagens precisamos ter controles de manipulação de carregamento por exemplo. Tem uma classe no AS2 que cuida melhor de arquivo de imagens externas e você consegue manipula-las. É a classe MovieClipLoader.

    Recomendo o artigo:
    MovieClipLoader e loadMovie - feito pelo Mozart Petter. que explica as diferença da função loadMovie() e da classa MovieClipLoader();

    Também existe muitas outras referências sobre o assunto pela web.

    Abraços.

  • 18 Tiago // Jun 18, 2008 at 5:23 pm

    olá Rodrigo, primeiramente parabéns pelo tutorial, no começo se eu tivesse achado algo do tipo teria sido bem mais facil… =D

    preciso de um help, estou fazendo esse site: http://www.visionaire.com.br/lk/viva/viva.html e como pode reparar nele os botões superiores funcionam normalmente com o AS:
    botao1.onRelease = function(){
    loadMovie(”oque.swf”, iframe);
    }
    botao2.onRelease = function(){
    loadMovie(”depoimentos.swf”, iframe);
    }
    toda essa parte central já é um swf externo e para aparecer uso o:
    loadMovie(”inicio.swf”, iframe);
    dentro de um frame…

    só que dentro desse meu inicio.swf tenho mais 3 botões, usei o:

    iframe.botao9.onRelease = function() {
    loadmovie(”depoimentos.swf”, iframe);
    }

    e os botões que estão no inicio.swf funcionaram…
    mas surgiram 2 problemas, esses botões funcionam só a primeira vez que entro no site, se eu navego e volto pra página inicial pelo logo eles não funcionam mais e o banner na parte de baixo é outro movieclip que não funciona de nenhum jeito como botão…
    você saberia me ajudar?
    desde já agredeço pela atenção…
    valew! xD

  • 19 Rodrigo // Jun 18, 2008 at 10:38 pm

    Tiago,

    Valeu mesmo pela visita.

    Provavelmente pode ser “erro” de caminhos no seu botão ou no endereço de destino.

    Ao invés de colocar apenas:

    iframe.botao9.onRelease = function() {
    loadmovie(”depoimentos.swf”, iframe);
    }

    Já que o “iframe” é está na raiz(_root) do palco, você pode tentar forçar esse caminho.
    Tente:


    _root.iframe.botao9.onRelease = function() {
    _root.iframe.loadmovie(”depoimentos.swf”);
    }

    Usar o _root teoricamente da no mesmo do jeito que está, mas talvez consiga “forçar” e “reiniciar” o caminho de acesso e conseguir voltar ao normal os botões que travaram quando clicar no logo.

    O banner é um caso parecido. O erro provavelmente está no caminho de acesso até o botão ou de acesso ao destino. Ou também, verifique também o nome de instância do banner, pra ver se ele está exatamente com o mesmo nome que foi inserido no código AS. Caso esteja com nomes diferentes, não irá funcionar.

    Abraços.

  • 20 Tiago // Jun 19, 2008 at 2:11 pm

    olá Rodrigo, com:

    _root.iframe.botao9.onRelease = function() {
    _root.iframe.loadmovie(”depoimentos.swf”);
    }

    funciona igual, na primeira vez que entro no site funciona perfeitamente, mas se volto para página inicial não funcionam mais, o banner é um movie clipe de um swf externo, e não funciona de jeito nenhum…
    se eu usasse o “inicio.swf” como fundo pro swf principal não existiria um comando que faça ele desaparecer para aparecer o swf externo?

    obrigado!

  • 21 Rodrigo // Jun 19, 2008 at 5:36 pm

    Tiago,

    Realmente não entendo porque acontece isso. O AS2 tem muitas gambiarras que as vezes um detalhe faz diferença.
    Eu tentaria experimentar outras estratégias de carregamento com seu loadmovie. Algo mais direto e simples que deixar carregar dentro de vários MC´s e verificar se funciona normalmente.

    Para descarregar imagem utilize a função unloadMovie(). Ele deve ser aplicado exatamente igual ao loadMovie();

    Sobre o Banner:

    Um truque que pode resolver o clique do banner, é:

    Criar um retângulo com o mesmo tamanho do seu banner externo, e converta este retângulo em simbolo do tipo “botão”. Edite ele e deixe-o apenas com a area HIT com mesmo formato do seu retângulo. Isso fará com que ele fique invisível para o usuário final.

    Coloque este botão invisível de forma que fique acima do seu “alvo_mc”(onde irá carregar seu banner/imagem externo).

    Então, dê um nome de instância para o botâo e aplique nele o mesmo código de clique do banner externo.

    Esse Botão invisível seria como se fosse um “vidro transparente” e abaixo dele a imagem externa.

    Ou, se não quiser usar botão invisível, pode criar o mesmo retângulo do tamanho do banner e converter em um MC, depois dar um alpha de 0% pra ele e aplicar o mesmo código nele.

    Abraços.

  • 22 Bruno // Jul 10, 2008 at 10:40 am

    Fala Rodrigo…

    estou aqui mais uma vez pedindo uma ajuda….da outra vez que pedi, suas dicas foram essenciais pro desenvolvimento do meu projeto, valeu mesmo!

    Bom…dessa vez é o seguinte: tenho um menu em que cada palavra é um um movie clip, e dentro desse mc tenho uma animação que faz crescer a palavra quando passo o mouse em cima (para esta animação, transformei a palavra em botão). Mas preciso que a palavra se mantenha grande quando clico nela (anulando o mouse over desta palavra), só voltando a ficar pequena quando clico em outra palavra.

    Já fiz algumas tentativas aki e nao consegui.

    Você teria alguma idéia de como fazer isso??

    abraço,bruno.

  • 23 Cristiane // Jul 18, 2008 at 11:36 am

    Bom dia Rodrigo, estava lendo seu Tutorial http://www.alvoweb.com/carregar-imagem-externa-no-flash-com-loadmovie/ e quero fazer algo parecido, só q não estou conseguindo.

    Seguinte: Quero abrir no meu filme principal, 4 SWF externos, mas não quero com botão, quero q eles carreguem assim q o filme principal for carregado.

    Eu fiz do seguinte modo:
    4 camadas, sendo: SKATE, BIKE, MOTO, SURF
    cada camada contem um MC vazio: bike_mc, skate_mc, surf_mc, moto_mc, que abrirá um swf externo: skate.swf, surf.swf, moto.swf, bike.swf…. porém, não está dando certo, dá um conflito entre eles, não entendo, um bnotão abre normalmente e os outros ficam estranhos…. Tenho uma 5 camadas com as actions para os mc:
    loadMovie(”01.swf”, “bike_mc”);
    loadMovie(”01.swf”, “skate_mc”);
    loadMovie(”01.swf”, “surf_mc”);
    loadMovie(”01.swf”, “moto_mc”);

    não se vc entendeu, mas estou me matando e não consigo :(

    Bjos

  • 24 Rodrigo // Jul 18, 2008 at 12:27 pm

    Oi Cristiane,

    Seu raciocínio está certo.
    Fiz teste com a sua explicação e consegui carregar normal.

    Com este condigo que você mostrou, ele carrega o mesmo conteúdo “01.swf” em 4 MC vazios com nomes diferentes.

    Agora, se você quer carregar 4 conteúdos diferentes no seu exemplo:
    skate.swf, surf.swf, moto.swf, bike.swf

    basta alterar para:

    loadMovie(”bike.swf”, “bike_mc”);
    loadMovie(”skate.swf”, “skate_mc”);
    loadMovie(”surf.swf”, “surf_mc”);
    loadMovie(”moto.swf”, “moto_mc”);

    Abraços.

  • 25 Denis Matos // Jul 23, 2008 at 3:42 pm

    Olá Rodrigo,
    Muito bom o tutorial, me ajudou bastante…
    Mas tentei fazer isso mas fazendo com que o nome da imagem seja nomeada atravez de um arquivo texto.. por exemplo : “loadMovie(imagem);”
    aonde em foto_atual, é puxado de um aquivo externo, que no meu caso eh um .php que no php funciona assim:

    se eu faço isso com uma caixa de texto dinâmica, funciona perfeitamente(aparece o texto “imagemexterna.gif”, mas com a imagem nao funciona.. sabe me dizer por que?
    Se conseguir resolver isso vai me ajudar muito..

    Abrs, Denis

  • 26 Rodrigo // Jul 23, 2008 at 10:48 pm

    Oi Denis,

    Faça um teste. Abra uma nova pasta pra armazenar os arquivos.
    Crie um arquivo txt e salve com nome de “arquivo.txt”

    Insira isto neste arquivo. Ele contem uma estrutura variavel=valor. Neste caso um endereço de imagem:
    variavelDaImagem=http://www.google.com.br/intl/pt-BR_br/images/logo.gif

    Este arquivo txt pode ser gerado/atualizado por um script php por exemplo.

    Agora crie um novo arquivo Flash e slave na mesma pasta do seu arquivo txt.
    Crie um Movie Clip vazio e dê um nome de instância “alvoVazioMc” (sem aspas)

    Obs: código para Actionscript 2.0

    Abra o frame da 1º camada e digite:
    /*
    * com uso do LoadVars conseguimos carregar um arquivo txt onde contem um endereço de imagem
    * que foi armazenado em uma variável vinda deste "arquivo.txt".
    * Esta variável recebe um endereço de uma imagem e o alvo é um MC vazio.
    * Esse arquivo.txt pode ser gerado/atualizado por script um php
    */
    var carrega:LoadVars = new LoadVars();
    carrega.load("arquivo.txt");
    carrega.onLoad = function(ok)
    {
    if(ok)
    {
    //loadMovie procura um endereço que vem de uma variável do txt, e um alvo pra receber imagem.
    loadMovie(this.variavelDaImagem, alvoVazioMc);
    }
    else
    {
    trace("Erro no endereço da imagem");
    }
    }

    Com isso você carrega uma imagem externa que é atualizado por um arquivo txt.
    E esse arquivo txt pode ser gerado/atualizado por exemplo por um script php.
    Eu praticamente não mexo com php, mas se eu não me engano, você pode tentar carregar um arquivo php direto, mas desde que esse php printa/escreva a seguinte estrutura de variavel=valor.

    Como flash trata os valor da variável como sendo texto do tipo String ele reconhece a variável do arquivo.txt que foi carregado e recebe um valor(a imagem) e procura por um alvo(um MC).
    O flash só precisa saber qual variável para receber o valor e mostrar no caso o loadMovie.

    Abraços.

  • 27 John Williams // Ago 20, 2008 at 1:45 pm

    Pretty nice site, wants to see much more on it! :)

  • 28 Guilherme // Set 20, 2008 at 12:28 pm

    Olá Rodrigo,

    Vc é o cara que explica tudo muito bem expliacado e que tira as dúvidas de todos, parabésns!

    Esta ocorrendo tudo certo, só que quando eu carrego o swf dentro do outro os boões não funcionam.

    Tem alguma dica?

    Obrigado, grande abraço, Guilherme

  • 29 Rodrigo // Set 20, 2008 at 5:15 pm

    Valeu Guilherme,

    É uma boa pergunta a sua. Com certeza vai ajudar muitos outros com a mesma dúvida.

    Bom, quando não funciona o clique do botão. Isso geralmente acontece porque o caminho que o botão precisa receber não está suficiente ou os nomes deste caminho pra chegar até ele está errado.

    Se quiser faça um teste. Crie 2 arquivos um será meu principal.swf, e outro o arquivoExterno.swf, ambos na mesma pasta.

    No seu arquivo externo que provavelmente deve ter um botão, dei no exemplo como nome de instância “meuBotao”. Inserir este código no primeiro frame deste arquivo externo.

    …Agora o importante, repare o caminho:
    Ex:

    _root.alvoMc.meuBotao.onRelease = function(){
       //faz alguma coisa
    }

    Perceba que colocamos:
    _root: que é a raiz do arquivo principal.
    alvoMc: que é o mc que receberá o arquivo externo.
    meuBotao: instância do botão que recebe o clique pela funcção onRelase().

    No seu arquivo principal.swf deverá ter apenas o loadmovie() para carregar o arquivo externo no seu Movie Clip alvo, que neste exemplo dei o nome de instância de “alvoMc”.
    Ex:

    alvoMc.loadMovie("arquivoExterno.swf");

    Obs: Lembra-se para este exemplo de criar um MC vazio com nome de intãncia “alvoMc” no seu arquivo principal.swf. É neste arquivo que receberá o tal do arquivoExterno.swf.

    Só testar que agora você consegue clicar porque o caminho que preparamos para este exemplo está para ser usado no arquivo “principal.swf” e não no “arquivoExterno.swf”.
    Este caminho definido lá no arquivo externo é importante, porque quando carregarmos o arquivo Externo em um principal, este arquivo carregado passará dentro do arquivo principal e por este motivo o clique do botão deve ser alterado pra conseguir receber o clique normalmente.

    Disponibilizei no final deste post um 2º Download contendo esse seu exemplo.

    Donwload de um exemplo com função loadMovie.

    Se possível, dê uma conferida no arquivo pra ficar mais claro.

    Abraços e boa sorte no seu projeto.

  • 30 kahlil // Nov 6, 2008 at 4:06 pm

    Cara! estou a tarde inteira procurando um bom tutorial para esse assunto e estava dificil viu.. aki a explicação está perfeita e facil de entender..

    estou com uma pequena dúvida.. será q vcs podem me ajudar??

    estou fazendo uma apresentação em flash p/ a faculdade. no primeiro slide eu quero um animaçãozinha que fiz em swf. (nao tem como editar a animaçao pois o programa q usei p/ fazer bloqueia o arquivo swf). até ai td bem,
    eu importei a animaçao no primeiro slide do flash usando o loadmovie e rodou normal, mas quando começa a rodar a animaçao, o teclado nao funciona e não consigo passar para o próximo slide.
    gostaria de poder interromper a animação e passar de slide..

    como faço isso????????
    ficaria mto grato se alguem me desse uma luz!!

    valeu!

  • 31 Rickardo // Nov 10, 2008 at 9:24 am

    ola amigo.. quero parabenizá-lo pela iniciativa e pelo belissimo tutorial… muito bem explicado…
    porem se puder me ajudar em uma coisinha aki q estou tentando fazer.. ficaria eternamente grato..
    seguinte…. nesse tutorial q vc ensinou no fla ja preespecificamos o nome da imagem a ser exibida no swf certo??
    pois bem.. eu tô querendo fazer o seguinte..
    imagine ..
    no meu diretório eu tenho 01.jpg, 02.jpg, 03.jpg… e assim sucessivamente..
    para q eu NÃOtenha q criar um mc_alvo para cada imagem.. como devo proceder..?? teria algum código q lêsse quantos arquivos . jpg eu tenho na pagina e ja o carregasse automáticamente??
    desde ja agradeço..!!!

    ricardocc@gmail.com

  • 32 Rodrigo // Nov 10, 2008 at 3:32 pm

    Rickardo, tudo bem?

    Valeu mesmo pela visita ao site.

    Bom, no exemplo do tutorial acima é algo realmente simples. Criamos todo o conteúdo de maniera manual, e pouco automatizada as tarefas.

    Agora, no seu caso já começa a utilizar mais conceitos de programação, pois você quer automatizar as coisas, então terá que pensar mais pra ter menos trabalho manual nas atualizações. Conseqüentemente irá exigir mais do programador.

    Preciso estudar mais a parte de programação, principalmente a parte de tecnicas pra manipular objetos. Isso exige certo tempo pra aprender e pegar e só a pratica vai ajudar.
    Mas fui tetando aqui tive um idéia inicial que depois você pode ir aprimorando:

    Por exemplo, terá que usar função loop for para saber quantos arquivos existe na pasta e conforme o numero de imagens criar um MC vazio (com código) e puxar o endereço da imagem e montar na tela com a posição para cada nova imagem adicionada sem que sobreponha uma a outra.

    suponhamos que existe no momento 4 imagens com seguinte nomes por padrão:
    imagem_1.jpg
    imagem_2.jpg
    imagem_3.jpg
    imagem_4.jpg

    No flash, salve o arquivo na mesma pasta das suas imagens.
    Para o código AS, no 1º frame, e insira:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    //CONFIGURAÇÕES ESTÃO DECLARADAS NESSAS VARAIVEIS:
     
    var qtdImg:Number = 4; //quantidade de imagens
    var xpos:Number = 0; //posição no eixo X de cada mc adicionado
    var larguraPixels:Number = 50; //largura em pixel das imagens
    //função que monta as imagens na linha horizontal
    function montaImagens(){
     
    	//usamos o "loop for" para automatizar a tarefa
     
    	for(var i:Number = 1; i <= qtdImg; i++)
    	{
    		//variavel temporaria para armazenar o nome do MC
    		var mc = "alvoMc"+i;
     
    		//cria um MC vazio na timeline principal(root)
    		_root.createEmptyMovieClip(mc, _root.getNextHighestDepth());
    		trace(_root[mc]._name);
     
    		//carregamos a imagem
    		_root[mc].loadMovie("imagem_"+ i +".jpg");
     
    		_root[mc]._x = xpos; //posição da imagem
    		xpos += larguraPixels; //posição da proxima imagem
    	}
    }
    montaImagens(); //executa a função

    Só testar, você verá que monta a imagem lado a lado para este exemplo.

    Abraços.

  • 33 Rodrigo // Nov 10, 2008 at 4:40 pm

    Kahlil, tudo bem?

    Valeu pela visita ao site.

    Disponibilizei mais um exemplo no final deste tutorial pra download.

    Donwload 4 - exemplo com função loadMovie.

    Espero que isso possa dar uma idéia inicial pra você fazer seu projeto.

    Abraços.

  • 34 kahlil // Nov 11, 2008 at 8:02 am

    muito obrigado rodrigo..
    mas aqui não está abrindo os arquivos fla, meu
    flash é 8, talvez vc tenha salvo em outra versao..
    abraço

  • 35 Rodrigo // Nov 11, 2008 at 9:28 am

    Download 4 atualizado pra versão flash 8.

    Abraços.

  • 36 kahlil // Nov 11, 2008 at 12:24 pm

    aaaa!!! firmeza!!
    VALEU RODRIGÃO VC É FERA!!!

  • 37 Rickardo // Nov 11, 2008 at 5:11 pm

    amigo muito obrigado é justamente isso q eu queria.. valew pela atenção..

  • 38 Moisés // Nov 12, 2008 at 9:32 am

    Seria possível usar esta técnica para abrir arquivo em disco?
    Preciso de um botão “ABRIR” para localizar a imagem em disco e outro botão “SALVAR”.
    Pois a imagem sofrerá alteraçãoes em camadas pelo cliente e será salva em disco.

    Tem como?

  • 39 Rodrigo // Nov 12, 2008 at 10:53 am

    Ola Moisés, tudo bem?

    Procure pela classe FileReference()
    talvez ajude no que você busca.

    Uma idéia:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    import flash.net.FileReference;
     
    //criamos ouvintes para os Eventos
    var ouvinte:Object = new Object();
     
    var file:FileReference = new FileReference();
    file.addListener(ouvinte);
     
    //criamos um MC vazio no nível de profundidad 0(zero) da timeline principal(root);
    //este alvo irá receber a imagem que o usuario buscar no computador dele
    _root.createEmptyMovieClip("alvoMc", 0);
     
    //adicionamos o botao pela biblioteca, 
    //na biblioteca terá que ter seu botão com linkage, caso queira adicionar utilizando código
    _root.attachMovie("btn", "abrirBtn", _root.getNextHighestDepth())
     
     
    /* EVENTOS ----------------------------------
     * ------------------------------------------
     * -----------------------------------------*/
    ouvinte.onSelect = function(_arquivo:FileReference){
    	alvoMc.loadMovie(_arquivo.name); //carregamos a imagem
    	trace("Usuário selecionou a imagem "+ _arquivo.name)
    }
     
    //quando o usuario desistir de procurar a imagem
    ouvinte.onCancel = function(file:FileReference):Void {
        trace("Usuario cancelou a procura pela imagem");
    }
     
    //quando clicar no botão de imagem, irá abrir a janela para buscar
    abrirBtn.onRelease = function(){
    	file.browse();
    }

    Abraços.

  • 40 Moisés // Nov 12, 2008 at 12:02 pm

    Não quero abusar, mas poderia me mandar esse fla?

    Estou sem compreensão. Preciso de ver o fla.
    moisesferre@ig.com.br

  • 41 Rodrigo // Nov 12, 2008 at 12:49 pm

    Moisés,

    Não tem segredo.
    Basta criar um botão com nome de instância “abrirBtn”.

    No 1º frame da timeline principal inserir o código:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    import flash.net.FileReference;
     
    //criamos ouvintes para os Eventos
    var ouvinte:Object = new Object();
     
    var file:FileReference = new FileReference();
    file.addListener(ouvinte);
     
    //criamos um MC vazio no nível de profundidad 0(zero) da timeline principal(root);
    //este alvo irá receber a imagem que o usuario buscar no computador dele
    _root.createEmptyMovieClip("alvoMc", 0);
     
     
    /* EVENTOS ----------------------------------
     * ------------------------------------------
     * -----------------------------------------*/
    ouvinte.onSelect = function(_arquivo:FileReference){
    	alvoMc.loadMovie(_arquivo.name); //carregamos a imagem
    	trace("Usuário selecionou a imagem "+ _arquivo.name)
    }
     
    //quando o usuario desistir de procurar a imagem
    ouvinte.onCancel = function(file:FileReference):Void {
        trace("Usuario cancelou a procura pela imagem");
    }
     
    //quando clicar no botão de imagem, irá abrir a janela para buscar
    abrirBtn.onRelease = function(){
    	file.browse();
    }

    Novamente. Busque mais informações sobre a classe FileRefrence(). Talvez com essa classe você consiga fazer o que precisa.
    No Help do flash(atalho F1) você encontra até exemplos de código sobre esta classe.

    Segue alguns artigos pra você estudar caso se interessar.
    http://imasters.uol.com.br/artigo/10577/flash/classe_filereference_portugues/

    http://www.mxstudio.com.br/flash/estudo_da_classe_filereference__flash_8_/

    http://www.linhadecodigo.com.br/Artigo.aspx?id=1633

    http://blog.souweb.info/classe-filereference/

    abraços.

  • 42 Moisés // Nov 12, 2008 at 1:21 pm

    Me retorna um erro: Error opening URL

    Se a imagem estiver no diretório do arquivo swf funciona, mas estando fora não abre, tem como reverter? E funcionar com imagens em qualquer lugar do disco?

  • 43 Leonardo de Avila // Nov 21, 2008 at 4:57 pm

    Oi Rodrigo!
    Criei um site em flash, mas ele demora muito para carregar as fotos. Já entrei em alguns fóruns, mas como não conheço muito action Script, não consigo colocar em prática o carregamento externo de fotos. Como faço isso num arquivo já pronto com as fotos.
    O menu de fotos tem 9 links e cada link é uma cena. As fotos estão na biblioteca do flash ou na pasta do diretório do site. Pode me dizer (passo a passo) como carregar externamente as fotos?
    o site é este: www.gabrelamo.com
    Abraço.

  • 44 Rodrigo // Nov 21, 2008 at 6:12 pm

    Leonardo,

    Com a função loadMovie() é algo realmente mais simples. Você até consegue ter preloader nas imagens, mas faz muita volta pra manipular isso.

    Caso queira algo mais complexo, montar por exemplo galerias de imagens precisamos ter controles de manipulação de carregamento por exemplo. Tem uma classe no AS2 que cuida melhor de arquivo de imagens externas e você consegue manipula-las. É a classe MovieClipLoader.

    Recomendo o artigo:
    MovieClipLoader e loadMovie - feito pelo Mozart Petter
    http://www.augpr.com.br/pt-br/node/10

    que explica as diferença da função loadMovie() e da classa MovieClipLoader();

    Também existe muitas outras referências sobre o assunto pela web.

    Abraços.

  • 45 Christian // Dez 18, 2008 at 7:22 pm

    Achei muito interressante o site e a ajuda prestada, eu sou leigo no assunto e estou apanhando tanto, hehehe…

    Consultei vários foruns e a forma como explica achei mais didática e resolvi postar a pergunta.

    Estou fazendo meu site em flash CS4 e dividi a introdução em 3 partes exemplo: Apresentacao.swf - 4kb
    Apresentacao-Fotos01.swf - 199 kb
    Apresentacao-final. 6 kb

    Dividi para que ficassem menor durante o carregamento, e o Apresentacao-Final.swf será o link pra entrar no site, ai vem a minha dúvida tentei fazer como os modelos acima, mas não consigo que entrem na sequencia, penso na possibilidade de unir todos em um único swf, mas gostaria de saber se tem como executar o código para esta forma como esta?

    Outra coisa que observei, no arquivo Apresentacao-Fotos01.swf há uma Interpolação de Movimento com fotos e textos, a Interpolação com textos aparecerem no arquivo swf importado pelo tecnica de LoadMovie, mas a Interpolação das fotos não aparecem na importação. Testei o arquivo Apresentacao-Foto01.swf, ele testado isoladamente sem importação funciona normalmente aparecendo todas as Interpolações, saberia algum motivo??

    Grato!

  • 46 Rodrigo // Dez 18, 2008 at 11:03 pm

    Olá Christian, tudo bem?

    Valeu pela visita ao site.

    Já verificou os arquivos que disponibilizamos para download? Eles estão no final deste artigo.
    Recomendo baixá-los e analisa-los. Com aqueles exemplos você poderá ter uma idéia de como funciona o loadMovie.

    Infelizmente não tenho como testar com CS4 no momento. =/

    Abraços.

  • 47 Christian // Dez 19, 2008 at 8:44 am

    Peço desculpas pois não consegui explicar melhor pois ontem minha esposa estava me apresando pra sair, ai ja sabe não é?… hehehe

    Então resolvi juntar todos os três arquivos em um só, resolvido o problema da Interpolação de Movimento com as fotos, agora todas as interpolações aparecem.

    Mas deixo a a pergunta que eu havia formulado errada pela pressa. Como ficaria o action Script neste exemplo anterior caso eu queira importar para o palco três ou mais arquivos swf neste caso no palco inteiro e os arquivos devessem abrir o 1º swf, executar, parar a ação e fechar, na sequencia abriria-se o 2º swf no palco e assim sucessivamente até o terceiro. Se for o caso reiniciaria o looping destes três novamente.

    Pergundo pelo AS pois sobre os CS4 funcionaria normalmente sendo pelo AS2, e não tem forum bons sobre CS4, não achei pelo menos ainda.

    Grato pela Ajuda!
    Christian

  • 48 Rodrigo // Dez 19, 2008 at 3:01 pm

    Christian, a função loadMovie é para utilizações bem mais simples. A intenção desse tutorial é pra galera que está começando com programação AS2.

    É importante ter em mente que, quanto mais dinamismo querer, mais exigirá do programador. Irá depender da sua finalidade. Você pode usar diversas técnicas de programação pra resolver um problema.

    O loadMovie para este caso que você citou começa ter alguns problemas, por exemplo:não conseguimos ter controle “total” do arquivo externo de uma forma eficiente. Com isso você terá problemas para obter informações do arquivo externo e começar a manipular ele do jeito que precisar.

    No lugar da função loadMovie(), eu recomendo você utilizar a classe MovieClipLoader do AS2.

    Tem um tutorial bacana feito pelo Tiago Braga:
    http://www.alvoweb.com/carregar-imagem-externa-com-moviecliploader/

    MovieClipLoader é o mesmo princípio da função loadMovie. Porém, com a classe MovieClipLoader você consegue ter melhor controle do arquivo externo, pois possui Eventos de manipulação. Com isso, você consegue saber quando o arquivo externo começou a carregar, quando terminou de carregar, quando ele está disponível visualmente no stage,…saber quando houver erro no carregamento, fazer preloaders, etc.

    E aí sim, só depois de conseguir saber as informações do arquivo carregado, que começo a fazer o que preciso com o arquivo de forma mais dinâmica e eficaz.

    Como por exemplo, consigo saber o total de frames (_totalframes), ou frame atual (_currentframe) que existe disponível na animação swf, e por aí vai.

    Tomando como base no seu exemplo. Disponibilizei um 2º exemplo de download, que está no final do artigo:
    http://www.alvoweb.com/carregar-imagem-externa-com-moviecliploader/

    O link para download do 2º exemplo:
    http://www.alvoweb.com/download/exemplo2_MovieClipLoader_AlvoWeb.zip

    Abraços.

  • 49 Christian // Dez 21, 2008 at 6:41 am

    Rodrigo!

    Você esta de parabens novamente, muitississimo obrigado pelas explicações, acredito que não sejam duvidas somente minhas, outras pessoas tornaram úteis estas suas explicações!

    Obrigado e continue este seu bom trabalho!

    Christian

  • 50 wueslei // Dez 21, 2008 at 12:22 pm

    amigo tudo bem?
    preciso de uma ajuda to tendo dificuldades aqui em carregar alguns swf. dentro de outro swf

    exem: principal 1º tela.swf aqui no 1 frame eu coloco loadMovieNum(”home.swf”, 1); dai blz abriu a pagina home….mais dai preciso abrir dentro da pagina home um outro swf.

    nao sei se deu para entender mais gostaria q me ajudasse com isso

    desde ja to grato pela ajuda

  • 51 Rodrigo // Dez 23, 2008 at 11:58 am

    Wueslei, tudo bom.

    Já verificou os arquivos que disponibilizamos para download? Os arquivos estão no final deste artigo.

    Recomendo baixá-los e analisa-los. Com aqueles exemplos você poderá ter uma idéia de como funciona o loadMovie e oque pode ser feito.

    Não costumo utilizar o loadMovieNum().
    Enquanto a função loadMovie() carrega um arquivo externo em um “alvo”(um mc), o loadMoveiNum pode carregar arquivos externos em níveis diferentes da timeline.

    Se quer ter maior controle com seus arquivos recomendo utilizar a classe MovieClipLoader pra AS2.

    Tem um tutorial bacana feito pelo Tiago Braga:
    http://www.alvoweb.com/carregar-imagem-externa-com-moviecliploader/

    MovieClipLoader é o mesmo princípio da função loadMovie. Porém, com a classe MovieClipLoader você consegue ter melhor controle do arquivo externo, pois possui Eventos de manipulação, etc enquanto ao utilizar apenas a função loadMovie, você começa ter mais limitações.

    Abraços.

  • 52 Verônica // Fev 18, 2009 at 5:03 pm

    Olá, Rodrigo! Tudo bom?

    Parabéns pelo tutorial! Está bem explicado.

    Consegui desenvolver o loadMovie, porém quando coloco um botão dentro do movie clip ele não funciona. O problema é que tenho uns botões que precisam ficar dentro de um mc pq não são em todas as páginas que aparecem. Poderia me ajudar a resolver isso?

    Obrigada.

  • 53 Rodrigo // Fev 20, 2009 at 11:16 pm

    Olá Verônica,

    Valeu pela visita ao site.

    Verifique o caminho que você quer acessar.

    Ex:

    Partindo o código do ponto de vista da timeline principal(_root).

    Tenho um mc com nome de instância meuMC

    Dentro desse mc, tem um botão com nome de instância meuBtn

    Depois, quando clicar no botão, chamo a função loadMovie(), pra carregar um arquivo externo no MC que instânciei de alvoMc

    Ex:
    Código inserido na 1º frame da timeline principal, seria algo assim:

    _root.meuMc.meuBtn.onRelease = function(){
    	_root.alvoMc.loadMovie("meu_Arquivo_aqui.jpg");
    }

    Tem uns exemplos pra download no final do artigo, veja se algum lhe ajuda em algo.
    Acredito que o problema desse caso seja de caminhos para acessar seus botões e carregar seu conteúdo.

    Abraços.

  • 54 Daniel // Fev 23, 2009 at 5:52 pm

    Olá amigo, Tudo bom?

    Admiro pessoas como voce, que lançam a luz de um assunto, clareando a mente, dando oportunidades para muitos visualizarem um caminho de realizações e conquistas.
    Parabéns!

    Veja se pode me ajudar.

    Tudo que eu quero é abrir uma página do primeiro site que estou construindo.

    btn1.addEventListener(MouseEvent.MOUSE_OVER, btOver);
    function btOver(event:MouseEvent):void {
    btn1.addEventListener(MouseEvent.MOUSE_OVER, btOver);
    gotoAndPlay(2);
    }
    btn1.addEventListener(MouseEvent.MOUSE_OUT, btOut);
    function btOut(event:MouseEvent):void {
    btn1.addEventListener(MouseEvent.MOUSE_OUT, btOut);
    gotoAndPlay(10)
    }
    btn1.addEventListener(MouseEvent.CLICK, carrega);
    function carrega(arquivo:String):void {
    var alvo=(”pagina.html”);
    }
    btn1.addEventListener(MouseEvent.CLICK, carrega);

    ESTES CÓDIGOS NÃO DÃO ERRO NENHUM, MAS A PÁGINA NÃO ABRE.
    PORQUE.

    SE PUDER ME AJUDAR AGRADEÇO

  • 55 Rodrigo // Fev 23, 2009 at 11:52 pm

    Olá Daniel, tudo bom!

    Valeu pela visita ao site.

    Então, esse código que você passou está em Actionscript 3. Lembrando que esse artigo que você deixou comentário é pra versão Actionscript 2. :)

    Para abrir uma pagina de internet , se estiver utilizando versão Actionscript 2
    Utilize o método getURL()

    E para versão Actionscript 3, utilize o método
    navigateToURL()

    Na internet e no help do flash você encontra mais detalhes sobre esses métodos citados acima.

    Segue seu código na versão AS2:

    //quando passar o mouse sobre o botão, faça...
    btn1.onRollOver = function(){
    	btn1.gotoAndPlay(2);
    }
     
    //quando retirar o mouse sobre o botão, faça...
    btn1.onRollOut = function(){
    	btn1.gotoAndPlay(10)
    }
     
    //quando clicar no botao, faça...
    btn1.onRelease = function(){
    	//abre a pagina na mesma janela(_self)
    	//coloque o endereço aqui
    	getURL("http://www.seusite.com/pagina.html", "_self");	
    }

    Agora pra versão AS3, o mesmo exemplo:

    //eventos
    btn1.addEventListener(MouseEvent.ROLL_OVER, onOver); //quando passar o mouse sobre o botão, executa função onOver()
    btn1.addEventListener(MouseEvent.ROLL_OUT, onOut); //quando retirar o mouse sobre o botão, executa função onOut()
    btn1.addEventListener(MouseEvent.CLICK, onClick); //quando clicar no botao, executa função onClick()
     
     
    function onOver(e:MouseEvent):void{
    	btn1.gotoAndPlay(2);
    }
     
    function onOut(e:MouseEvent):void{
    	btn1.gotoAndPlay(10);
    }
     
    function onClick(e:MouseEvent):void{
    	//coloque o endereço aqui
    	var endereco:URLRequest = new URLRequest("http://www.seusite.com/pagina.html");
    	navigateToURL( endereco, "_self" );
    }

    Abraços.

  • 56 Daniel // Fev 24, 2009 at 9:04 am

    Valeu Rodrigo.
    Deu tudo certo
    Muito obrigado.

    Um Grande Abraço

  • 57 Daniel // Fev 24, 2009 at 4:24 pm

    Olá Rodrigo.

    Porque , ao aplicar o esquema acima, em ACTIONSCRIPT 3.0, ESTÁ DANDO ESTE ERRO?

    ReferenceError: Error #1069: Propriedade gotoAndPlay não encontrada em flash.display.SimpleButton e não há valor padrão.
    at promocao_fevereiro_fla::botaoanimado_36/onOver()
    ReferenceError: Error #1069: Propriedade gotoAndPlay não encontrada em flash.display.SimpleButton e não há valor padrão.
    at promocao_fevereiro_fla::botaoanimado_36/onOut()

    O que pode estar acontecendo?

    AGRADEÇO A SUA ATENÇÃO

    Um abraço.

  • 58 Rodrigo // Fev 26, 2009 at 8:29 pm

    Olá Daniel,

    Então Daniel, esse erro apareceu porque a classe usada pra criar seu botão “SimpleButton” não existe essas propriedade/método gotoAndPlay() ou gotoAndStop();

    gotoAndPlay e gotoAndStop são métodos da classe MovieClip.

    Normalmente faço botões com MC mesmo.
    Não é complicado fazer botões com MC, com paciência você acha no google artigos de pessoas fazendo botões com MC.
    A vantagem de fazer botões com MC, é que você tem mais controle e pode explorar mais idéias de animações mais interessantes.

    Veja esse exemplo que montei partindo da mesma lógica do seu exemplo:
    http://rapidshare.com/files/202993703/criar_botao_mc_as3.fla.html

    Abraços.

  • 59 Daniel // Mar 2, 2009 at 4:12 pm

    Olá Rodrigo.
    Você já percebeu que sou bem iniciante no assunto.
    Te agradeço pela paciencia, e pela grande ajuda que está me dando. Encontrei muitos tutoriais e video aulas interessantes na web. Na alvo Web mesmo tem muito material de grande ajuda.
    Me diga uma coisa; neste exemplo que vc montou e disponibilizou pela rapidshare, onde estão aqueles dados do botão “up”, “over”, “down” e “hit” ?
    Desculpe a ignorancia.

  • 60 Rodrigo // Mar 2, 2009 at 7:51 pm

    Eu também estou sempre aprendendo Daniel.

    Então, os estados de botão quando você cria com MCs, você deve cria-los manualmente.
    Isso mesmo, manualmente, não existe algo automático. Os estados eu criei dentro da timeline do MC e separei em Layers.
    É uma boa sempre nomear as coisas que você fizer, layers, arquivos na bibliotecas, comentarios nos códigos quando necessário, etc…a organização é essencial pra não se perder no flash.

    A timeline do Botão é diferente da timeline do MC.

    Embora você pode pensar que dê mais “trabalho” e também vai exigir muito mais atenção na hora de criar, você com tempo vai perceber a necessidade em criar botões com MC. A vantagem como disse antes, você tem maior liberdade de criação e controle também.

    A dica é, pesquisa na net(google), você vai encontrar diversos arquivos feitos e artigos de como fazer botões com MC. Veja como cada pessoa fez o seu botão, estude detalhadamente as técnicas e analises a diferenças de criação. Com isso você aprende outros meios de criação. E assim é também para códigos.
    Com tempo e pratica você vai estudando esses métodos de criação e achar o que mais é conveniente pra você e seu projeto.

    Não existe “regras” fixas na criação, existem muitos meios de chegar no mesmo resultado, as vezes você só tem que saber o que você tem de ferramenta pra fazer e quais são seus “limites”(se caso existir). Não tem onde fujir, tem que estudar e praticar muito(muito mesmo!) e isso só depende de você.

    Posso dizer que o “google” e “Help do flash” são seus grandes aliados nos estudos e pesquisas. E o melhor é “de grátis!” :D

    Abraços.

  • 61 Claudia // Mar 13, 2009 at 9:03 am

    Olá Rodrigo,
    parabéns pelo tutorial “LoadMovie”, é fácil de entender e funciona…
    abraços.

  • 62 Bruno // Mar 17, 2009 at 11:45 pm

    Olá Rodrigo!
    Inicialmente gostaria de te dar os parabéns pelo tutorial!

    Estou tentando carregar um swf dentro de outro com loadMovie.

    Meu código é simples:

    (Frame 1 do arquivo destaques.swf)
    tela.loadMovie(”dest01.swf”);
    stop();

    (Frame 1 do arquivo dest01.swf)
    jpg.loadMovie(”dest01.jpg”);
    stop();

    A instancia “jpg” é um MC que contém um retangulo com as dimensões da “máscara” que eu quero fazer na imagem dest01.jpg.

    Salvei, apertei Ctrl+Enter e funcionou direitinho!

    O problema é que quando envio os arquivos pro servidor, o arquivo destaques.swf carrega sem o dest01.swf!!

    Você tem idéia do que pode estar acontecendo e o que poderia solucionar este problema??

    Agradeço desde já!

  • 63 Rodrigo // Mar 18, 2009 at 10:01 am

    Fala Bruno. Tudo bem?

    Valeu pela visita ao site.

    As vezes a internet tem algo inexplicáveis. ehehe
    Estranho que se funciona localmente, e se você fez upload dos arquivos no local correto deveria aparecer normalmente.
    Teoricamente falando está certo.

    Bom, seria um pouco mais fácil de analisar se pudesse ver o arquivo no ar.

    Mas vou tentar dar um palpite que talvez funcione.

    Quando você se refere ao arquivo dest01.swf, isso inclui não aparecer dest01.swf com a imagem jpg ou….ou apenas aparece a imagem jpg, mas o fundo do seu dest01.swf (onde deve ter algum conteudo no jpg MC) que não aparece?

    Faça um teste ou verifique se você não está carregando o arquivo dest01.jpg nesse jpg MC.

    Lembra-se que o mc não adianta ter coisa inserida nele, poque quando carregar um arquivo ele irá substituir todo o conteudo anterior pelo atual.

    Por isso no tutorial nos referimos a criar mc “vazio” para receber conteúdo externo.

    Tenta fazer um teste, criando um outro mc (vazio) pra carregar a imagem dest01.jpg fora em do jpg MC. Talvez isso pode solcionar a razão de não aparecer o
    dest01.swf quando tenta carrega-lo.

    Não sei se isso aconteceu com você, mas foi que consegui entender no momento.

    Ou o jeito é tentar fazer um novo teste com algo mais simples pra ver onde que está o erro.

    Abraços.

  • 64 mauricio // Abr 11, 2009 at 2:47 pm

    Ola rodrigo muito bom esse seu tutorial
    olha só estou fazendo meu primeiro site usando um templat e a duvida é preciso linkar um botão p/ abrir uma galeria externa sera q tu pode me ajudar ….obrigado

  • 65 Rodrigo // Abr 11, 2009 at 3:21 pm

    Olá Mauricio,

    Valeu pelai visita ao site.

    Pra inserir um link no seu botão ou MC, basta inserir o código na timeline principal onde está sue botão com nome de instância.

    //quando clicar e liberar o mouse sobre esse botão, faça...
    meuBtn.onRelease = function(){
    	//seu comandos aqui
     
    	//exemplo, abre a pagina do google, em uma nova janela
    	getURL("http://www.google.com.br", "_blank");
    }

    Onde é meuBtn é seu botão com nome de instância.

    Um nome instância em um objeto é importante pra conseguirmos chama-lo e controla-lo pelo actionscript.

    Boa sorte com teu projeto.

    Abraços.

  • 66 ivan // Abr 13, 2009 at 10:55 am

    oi rodrigo, parabens pelo seu belissimo trabalho, a algum tempo uso flash em meus sites devido a facilidade da formatação das paginas, mas desta vez me deparei com uma situação que acho que nao podera ser resolvida com flash, tenho um cliente de um orquidario que quer que eu reformule todo seu site, bom ate ai tudo bem, mas ele quer um carrinho de compras e algo que calcule valor de sedex, o carrinho de compras pode ser algo bem simples, so precisaria somar os valores dos itens comprados do cliente e no final mostrar uma soma incluindo o sedex que ja seria previamente calculado antes de fechar a compra, o que vc me sugeria ?
    muito obrigado abraço

  • 67 Rodrigo // Abr 13, 2009 at 12:48 pm

    Tudo bem Ivan?

    Valeu pela visita ao site.

    Já começa a ficar mais complexo seu caso. Talvez você precisara usar uma linguagem de servidor tipo ASP ou PHP pra interagir com Flash e servidor.
    Achei no google procurando algo como shopping cart flash actionscript, veja se esses links podem te ajudar em algo.

    http://www.ahfx.com/inter2.php
    http://www.ahfx.com/inter2b.php
    http://flashspeaksactionscript.com/21-flash-shopping-carts/
    http://www.actionscript.org/actionscripts_…y/Misc_Scripts/
    http://www.adobe.com/devnet/flash/quicksta…_ui_components/

    Abraços.

  • 68 Hércules // Mi 22, 2009 at 11:42 am

    Olá Rodrigo

    Parabéns pelo ótimo site!

    Bom, estou desenvolvendo um site todo em flash:

    www.acontecer.net

    Gostaria que vc desse uma olhada no área de notícias do site e me dissesse qual a melhor forma para desenvolver esse tipo de conteúdo.

    Veja que as notícias mais recentes aparecem na home page e existe o histórico das notícias em forma de combobox.

    espero contar com sua ajuda…

    abraços!!

  • 69 Deco // Out 5, 2009 at 5:46 pm

    gostaria de saber como eu fazer pra carregar o SWF assim que carrega o site
    Exemplo: tenho meu layout pronto
    ai coloco na camada “action”

    ” _root.createEmptyMovieClip(”alvoMc”, 0);
    alvoMc.loadMovie(”home.SWF”);”

    so que quando abre o site nao carrega e quando uso “Ctrl+enter” ele mostra um erro! pode me ajudar?

  • 70 Rodrigo // Out 6, 2009 at 6:38 am

    Deco,

    Se o arquivo não carrega, verifica se está com nome correto, ou se o endereço do arquivo existe no local que você está querendo publicar. Além de fazer teste local, é sempre bom fazer testes com arquivos online(em algum servidor web) pra certificar-se que seu arquivo funciona corretamente na internet.

    Você pode fazer um preloader pro seu arquivo home.swf, pra mostrar porcentagem de “carregando”. Isso é útil caso seu arquivo seja pesado pra carregar online emostrar um aviso que o arquivo está sendo carregado.
    Procure na net sobre preloader em Actionscript 2.0, existe muitos exemplos de como fazer um.

    Caso queira continuar usando loadMovie pra carregar seu arquivo, no 1º frame da timeline principal do seu arquivo principal, deixe assim:
    Obs: Sugiro criar um preloader para seu arquivo home.swf.

    //para de rodar a timeline principal
    stop();
    //cria por código um movieclip pra ser alvo do arquivo externo
    var alvoMc:MovieClip = this.createEmptyMovieClip("alvoMc", 0);
    //carrega o arquivo no alvo
    alvoMc.loadMovie("home.SWF");”

    O loadmovie é apenas indicado pra casos mais simples.
    Caso queira mais controle sobre carregamento, outra alternativa e recomendado é usar a classe MovieClipLoader no lugar do função loadMovie.

    Confere esses exemplos de como usar classe MovieClipLoader. Pesquisa na net sobre “MovieClipLoader” você acha vários exemplos sobre esse assunto.

    http://imasters.uol.com.br/artigo/3593/moviecliploader_e_loadmovie
    http://www.alvoweb.com/carregar-imagem-externa-com-moviecliploader/

    Abraço.

  • 71 Alexandre // Out 30, 2009 at 10:16 am

    Fala meu amigo, tudo em paz?

    E o seguinte andei vendo uns tutorias seu, e o povo gosto bastante, porem, infelizmente, ñ achei o que eu precisava. E um pouco complexo de explicar aqui, mas vou tentar.

    E assim, eu estou fazendo um site que tenho que apresentar na terça agora, e ele funciona mais ou menos assim: eu tenho um arquivo swf aonde esta o menu do site e tenho um alvo que quando eu clico em alguma opçao, por exemplo “baby”, abre nesse alvo um outro arquivo swf com esse baby, ate ai tranquilo. agora que complica rsrsrs. a Pagina baby funciona mais ou menos assim: eu tenho uma pagina que tem os catalogos das marcas de roupas, onde cada um e um botao. e tem um outro alvo dentro dessa pagina swf. clicando em um catalogo ele abre dentro desse alvo uma outra pagina swf com as opçoes das roupas. e ai vc clicando em uma roupa abre um outro arquivo swf que e a imagem da roupa que vc escolheu. otimo ate ai consegui o problema mesmo e agora, esse arquivo swf da foto tem um botao e o que eu preciso e que quando eu clique na fotinha ela abra um outro arquivo dentro do swf anterior. eu ñ sei como dizer isso ao flash. Sei que esta complicado de entender ne? rsrsr bom eu tentei ser o mais claro possivel… Se for possivel vc me add no msn e eu te mando os arquivos que eu tenho aqui para que vc possa ver melhor e entender ou se tiver outra forma, ñ sei.

    Bom de qualquer forma e isso tomara que consiga me ajudar, pois ja estou com o praso em cima rsrsrs muito obrigado desde ja pela ajuda.

    Alexandre

  • 72 Rodrigo Guerra // Nov 5, 2009 at 9:36 am

    Amigo,

    Obrigado pelo excelente tutorial, contudo estou tentando fazer o que explicou sem sucesso.
    Quero carregar um player de música externo no meu site que está todo em flash.
    Tenho um link, para utilizar em HTML e tentei fazer o mesmo usando a função loadmovie, conforme sugerido no seu tutorial.
    O problema é que fica carregando e não para….
    Fica apenas aparecendo o circulo de que está carregando e não carrega o link externo.

    Pode me ajudar?

    Abraços

  • 73 Rodrigo // Nov 5, 2009 at 10:36 am

    blz Rodrigo,

    Talvez seu arquivo do player perde foco pra tentar carregar.

    Coloca isso na 1º frame da timeline principal do seu arquivo principal(onde tem seu loadMovie)

    this._lockroot = true;

    Veja se dá certo.

    Abraço

  • 74 Rodrigo Guerra // Nov 5, 2009 at 11:23 am

    Xará…a idéia foi boa, mas não deu certo…inclusive o carregamento parou.

    Seguinte, consegui fazê-lo carregar com LoadMovie Num, contudo ele só funciona(tocar as músicas), quando o level é 0(zero), aí vc sabe ele se sobrepoem ao resto do site.
    Não consigo fazê-lo funcionar no level 1.
    Mesmo assim, tenho problemas quanto ao posicionamento, pois ele carrega sempre em cima à esquerda.

    Alguma idéia?

    Abraços,

  • 75 Rodrigo // Nov 5, 2009 at 2:10 pm

    Pode ser várias coisas por trás disso tudo pra dar um erro.

    Se ele funciona quando carrega sozinho, mas não funciona quando é carregado em outro SWF, isso pode problema de do seu player perder foco quando é carregado em outro swf(level).

    Ou também verificar como estão os endereços das suas musicas em relação ao arquivo que carrega esse player. Se usa xml, tente fazer teste colocando endereço completo das musicas pra tentar carregar, caso ainda não esteja. Provavelmente o arquivo carrega, mas perde foco com endereço de musicas quando carregado em outro swf.

    Você terá que verificar o seu player e ver como ele está carregando essas musicas e então alterar o foco do carregamento.

    Ou também outro caso é, se esse player swf for de outro domínio e protegido pra não exportar conteúdo pra outro domínio, terá um grande trabalho e só terá permissão se o autor do player disponibilizar pra carregar em seu domínio. Isso caso o player não for de sua autoria.

    O loadmovie só carrega o arquivo externo mas não te dá muito controle de como seu arquivo é carregado. Tente usar classe MovieClipLoader no lugar.

    Ex:
    http://imasters.uol.com.br/artigo/3593/moviecliploader_e_loadmovie

    Se esse está dando erro, faça teste por partes, carrega musica, depois carrega o arquivo em outro, usa outro player, etc, vai cercando os problemas por partes.

    Abraço.

  • 76 Marcel // Nov 26, 2009 at 9:17 pm

    Rodrigo! Congratulações pelos tutoriais em flash. Até agora, o melhor que já encontrei na internet. É o seguinte: tenho seis botões e cada botão abre um mc.swf, mais ou menos assim:
    cozinha | banheiro| area de serviço.
    Quando clico no botão cozinha ele abre o mc.swf perfeitamente. Quando clico no banheiro ele abre o mc.swf também, porém, não na mesma posição do anterior e sim um pouco mais acima.
    Como posso resolver isso, sendo que estou usando o seguinte comando pra cada botão:
    on (press){loadMovie(”cozinha2.swf”,1);
    }
    lembrando a você que estou usando o mesmo mcvazio pra todos.
    Pode me ajudar ?

  • 77 Rodrigo // Nov 27, 2009 at 2:51 pm

    Olá Marcel, valeu pela visita ao site.

    Confere os exemplos de arquivos pra download no final do artigo. Você pode ter uma idéia de como mexer com conteúdo externos usando loadmovie. :)

    O loadmovie é pra casos simples, porém por ser “simples”, nem sempre te dá maior controle de manipulação do arquivo.
    Ou seja, você perde controle do que acontece com o arquivo carregado e complica manipular o conteúdo.

    Quando o loadmovie carrega em um mc(um alvo), geralmente ele(o alvo e loadmovie) automaticamente ajusta posição de todo conteúdo carregado no topo superior esquerdo do alvo mc, ou seja com valor (zero) no eixos X e Y do seu mc que recebe conteúdo.

    As vezes pode acontecer algo do tipo, não sei no seu caso, mas você pode verificar:

    Verifica se todos seus arquivos swf, se o conteúdo estão com posição correta no stage com valor zero pra eixo X e Y. Se não, por exemplo as vezes pode “parecer” que carregou “deslocado” o conteúdo no mc alvo, mas seu conteudo está com posição errada no stage de cada swf carregado(e não seu mc alo no swf principal), e pode criar essa “ilusão” que está errado a posição do conteúdo.

    Como disse, não sei se foi no seu caso esse detalhe.

    De qualquer forma, o loadmovie pode ser ótimo começo pra estudos de lógicas e situações simples. Mas conforme fica mais complexo e precisa de mais controle, no lugar da função loadmovie é recomendado usar a classe MovieClipLoader pra carregamento externo de imagens/swfs.

    Geralmente por ser classe, oferece controle de “eventos”, que você pode manipular seu conteúdo depois de acontecer determinado evento, ex: “quando acontecer algo, você faz alguma tarefa.”

    Novamente, o loadmovie não vai te dar controle “legal” da situação. De qualquer forma, você pode conferir os links de download disponível no final desse artigo.

    Confere esses links sobre:
    http://imasters.uol.com.br/artigo/3593/moviecliploader_e_loadmovie
    http://www.alvoweb.com/carregar-imagem-externa-com-moviecliploader/

    Mais info, confere também o Help Flash sobre classe “MovieClipLoader” pra AS2.
    Na net você acha outros exemplos sobre esse tema.

    Abraço.

  • 78 Jacqueline // Dez 15, 2009 at 10:12 am

    parabens!! muito perfeito, seu tutorial é o melhor!
    =*

Faça um comentário

WordPress database error: [Table 'wp_cas_count' is read only]
INSERT INTO wp_cas_count (id) VALUES (NULL)

WordPress database error: [Table 'wp_cas_image' is read only]
INSERT INTO wp_cas_image (id, createtime, word) VALUES (0, 1328566832, 'micro')

WordPress database error: [Table 'wp_cas_count' is read only]
DELETE FROM wp_cas_count WHERE id = 0

*
Para validar seu comentario, por favor digite a palavra que aparece na imagem.
Voce pode escutar o som desta palavra caso julgue necessario. Clique na imagem para ouvir.