Ir para conteúdo

POWERED BY:

Arquivado

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

Recommended Posts

Pessoal tenho um Movie Clip que carrega uma foto externa (arquivo JPEG) através de loadMovie. Tenho uma duvida:Gostaria de fazer um preloader, mas se eu fizer eu estarei carregando os quadros em si, isto é, os objetos proprios do flash, ou tbm a imagem externa junto?Caso não esteja carregando a imagem, como devo proceder?Verificar se o loadMovie já foi completado???Obrigado! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual flash você está uasndo??se for o mx você pode fazer um enteFrame pra checar se o carregamento foi completadoe o movieclipoprecisa de uma instancia (um nome)por exemplo..se a insta ncia do movuieclip for "alvo" (sem aspas)this.onEnterFrame = function (){loaded = alvo.getBytesLoaded()total = alvo.getBytesTotal()if(loaded == total && total > 0){trace('carregado')delete this.onEnterFrame}}desta forma você estará criando um prelaoder do movieclip, ou seja, só da imagem que carregará externamente...e nao do filme em sipor exemplo pra exibir pro usuário a porcentagem do carregamento você poderia adicionar um campo de texto dinamico com instancia "pct"this.onEnterFrame = function (){loaded = alvo.getBytesLoaded()total = alvo.getBytesTotal()percent = Math.floor((loaded/total)*100)pct.text = percentif(loaded == total && total > 0){trace('carregado')delete this.onEnterFramepct.text = ""}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso seria no frame onde tem o movie clip? esse enterframe?E você poderia me explicar o que esse trace faz? Sou leigo em actionscript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamo lah

 

imagina seu filme estruturado da seguinte maneira:

 

_root (raiz do filme)

|--alvo (movieclip que carrega o jpg)

|--pct (campo de texto dinamico que exibirá a porcentagem do carregamento)

 

no primeiro frame da timeline principal (_root):

 

this.onEnterFrame = function (){

cria um processamento paralelo que será executado na taxa de frames por segundo do filme por segundo ex:

 

se seu filme está setado em 24 FPS, a função será executada 24 veze spor segundo

 

loaded = alvo.getBytesLoaded()

o metodo getBytesLoaded() retorna os bytes carregados (óbvio...rs) do arquivo carregado pelo movieclip que o precede, no caso "alvo"*/

 

total = alvo.getBytesTotal()

o mesmo, só que agora os bytes totais do arquivo externo

 

percent = Math.floor((loaded/total)*100)

simples calculo matemático para retornar a porcentagem dos bytes carregados.....sempre arredondando para baixo (pra não retornar um numero enorme...rs)

 

pct.text = percent

 

diz que o texto do campo de texto será o valor retornado do calculo anterior

como está dentro do "onEnterFrame", este campo de texto será atualizado varias vezes por segundo, deixando o usuário sempre atualizado com a informação tb

 

if(loaded == total && total > 0) {

se os bytes carregado forem iguiais aos bytes totais, e os totais forem maior que 0 (aqui eu fiz isso, pois na maioria das vezes ele checa o if antes do flash "saber" quantos bytes tem o arquiuvo externo, ou seja....getBytesTotal retorna 0, e loaded tb.;....pra evitar o bug usa-se esse metodo

 

trace('carregado')

dentro do Flash, você pode dar um "trace", ele só aparece quando você testa o filme dentro do flash, o flash player, e brownsers ignoram esse comando....serve apenas para você saber se ele está entrando na condição, ou exibir algum valor por exemplo os bytes totais....é como se fosse o "echo" de varias linguagens de programação....a diferença é que não aparece na aplicação, e sim no painel OUTPUT do flash...que exibe tb se há erros na programação, etc...

 

poderia ser:

 

trace('total de bytes do arquivo: ' + total)

aqui concatenando com o valor da variavel "total"

 

delete this.onEnterFrame

apaga o enterframe, evitando processamento desnecessário,, pois quando o carregamento chegar no final, não terá mais pq verificar o if, nem exibir a porcentagem

 

pct.text = ""

apaga tudo do campo dinamico, deixando-o em branco.....você pode remover o campo de texto, caso ele tenha sido criado atraves de programação (createTextField())

}

}

 

você poderia criar uma barra, transforma-la em movieclip, e trabalhar com as propriedades _xscale, _yscale, _rotation...etc...pra fazer um preloader mais atrativo...

 

a partir dae é só pesquisar e usar a criatividade

 

qualquer duvida poste ae

 

abraço

 

Chan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Chan. Eu tava tentando fazer o preloader de imagem externa e fiz o seguinte:

 

Tenho 2 frames na linha principal do filme.

 

No primeiro frame há um MC chamado barra e um texto dinamico chamado pct, coloquei a ação no primeiro frame:

 

this.onEnterFrame = function ()

{

loaded = alvo.getBytesLoaded()

total = alvo.getBytesTotal()

percent = Math.floor((loaded/total)*100)

pct.text = percent

barra._xscale = pct;

if(loaded == total && total > 0)

{

trace('carregado')

delete this.onEnterFrame

pct.text = ""

}

}

 

Na ação do MC barra coloquei:

 

onClipEvent (load) {

this._xscale = 0;

}

 

 

NO SEGUNDO FRAME, ONDE HÁ O MC ALVO QUE CARREGA A IMAGEM EXTERNA, COLOQUEI A AÇÃO: (ELE CARREGA UMA IMAGEM ALEATÓRIA)

 

fotos = new Array (1, 2, 3, 4, 5);

randomico = fotos[int (Math.random () * fotos.length)];

loadMovie("imagens/00" + String(randomico) + ".jpg", alvo);

alvo._y = 0;

alvo._x = 0;

 

 

SÓ QUE NADA FUNCIONA. O QUE ESTÁ ERRADO? (Sei que deve ter muita coisa, pois entendo muito pouco de AS) http://forum.imasters.com.br/public/style_emoticons/default/sick.gif http://forum.imasters.com.br/public/style_emoticons/default/sick.gif http://forum.imasters.com.br/public/style_emoticons/default/sick.gif :angry:

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º - verifique as insttancias dos movieclips, se não tem nome erradodepois, o carregamento das fotos randomicas pode ser feito de uma maneira mais simples e leveloadMovie("imagens/00" + (random(4)+1) + ".jpg", alvo);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Chan, não consegui. Tentei fazer do jeito que você me explicou. Se você ou outra pessoa puder baixar o meu arquivo e analisar pra ver se está certo, ficarei muito grato.

 

Fazer um preloader do filme em si eu consigo. Tou me complicando em arquivos externos.

 

Arquivo FLA

 

Se puderem enviem pro meu email: wallacecharlles@gmail.com

 

Obrigado desde já! http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Phabyo, se você tbm puder me dar uma mãozinha... Eu agradeço.

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.