Ir para conteúdo
Fórum Script Brasil
  • 0

Preload Class


Rezinha

Pergunta

Oi galera....

To fazendo o curso de Flash.... to no exercíco Preload Class, fiz ele todinho..só q não tá dando certo... aparece a seguinte menssagem de erro :

Cena=Cena 1, Camada=Scripts, Quadro=1: Linha 4: Diretiva #include mal formulada

#include "preloader.as" // inclui arquivo externo - preloader.as

Vou colar o exercício todo aki pra q vocês possam me ajudar... porque não to conseguindo achar o meu erro..lá vai :

Começaremos criando um arquivo com o tamanho de palco em 320 x 240 px e com quatro camadas:

scripts

botões

movieclips

layout

No primeiro frame da camada scripts insira o seguinte código:

// -------------------------------------------------------------------

// Image Preloader 2

// by Jonas Galvez (jonasgalvez@uol.com.br)

// -------------------------------------------------------------------

fscommand("allowscale", false); //fixa o tamanho no palco do swf, para não distorcer a imagem

this.stop();

#include "preloader.as" // inclui arquivo externo - preloader.as

this.createEmptyMovieClip("images", -1); // cria um movieclip vazio, instancia de images e seta o local no palco

this.images._x = ((320/2)-(305/2)) - 1;

this.images._y = ((240/2)-(178/2)) - 1;

this.buttons._visible = false; // torna as instancias de botão invísivel, a barra e //suas bordas visíveis enquanto os movies externos são carregados.

this.progressbar._visible = true;

this.progressbar_border._visible = true;

this.attachMovie("status_message", "status_message", 0); // anexa o mc //status_message

this.status_message._x = 15;

this.status_message._y = 12;

var total_images = 5; // define o nº total de imagens

var preloaderObj = new Preloader(); //seta a variável preloaderObj

for(var i = 1; i < (total_images+1); i++) {

this.images.createEmptyMovieClip("image" + i, i);

this.images["image" + i].loadMovie("image" + i + ".swf");

preloaderObj.addMovieClips(this.images["image" + i]);

this.buttons["button" + i].onRelease = function() {

for(var mc in _root.images) _root.images[mc]._visible = false;

_root.images["image" + this.i]._visible = true;

};

this.buttons["button" + i].i = i;

};

preloaderObj.startPreload();

preloaderObj.onPreloadUpdate = function() {

_root.progressbar._xscale = this.percentage;

};

preloaderObj.onPreloadComplete = function() {

for(var i = 0; i < this.movieclips.length; i++) {

this.movieclips._visible = false;

this.movieclips.gotoAndStop(2);

};

_root.status_message.removeMovieClip();

_root.buttons._visible = true;

_root.progressbar._visible = false;

_root.progressbar_border._visible = false;

};

// -------------------------------------------------------------------

// ENG DTP & Multimídia

// http://www.eng.com.br/

// -------------------------------------------------------------------

Na camada botões, crie um movie clip e o instancie de "buttons" (sem áspas).

Dentro deste movie clip crie cinco botões e os instancie de "button1", "button2", "button3", "button4" e "button5" - todos sem áspas.

Note que não há ações para os botões - esta é uma das grandes novas do Flash MX, botões que podem ser instanciados e ter seus scripts declarados em um frame. =)

Volte para a cena principal.

Agora, na camada movieclips, crie uma barra horizontal com preenchimento e bordas.

Selecione somente a borda e pressione F8 - marque a opção Movie Clip. Uma vez transformada a borda em movie clip, instancie-o de "progressbar_bord" (sem áspas).

Agora selecione somente o preenchimento da barra e pressione F8 - marque a opção Movie Clip. Uma vez transformado o preenchimento em movie clip, instancie-o de "progressbar" (sem áspas).

Na camada layout, crie um layout que desejar.

Agora abra um novo arquivo de texto no bloco de notas, iremos criar o arquivo preloader.as.

Insira as seguintes linhas dentro do novo arquivo de texto:

// ------------------------------------------------------------------------

// Preloader Class v2.0

// by Jonas Galvez (jonasgalvez@uol.com.br)

// ------------------------------------------------------------------------

_global.Preloader = function() {

var args = (arguments[0].length) ? arguments[0] : arguments;

this.mcTotal = this.total = this.left = 0;

this.loaded = this._percentage = 0;

this.movieclips = new Array();

for(var i = 0; i < args.length; i++) {

if(args instanceof MovieClip) {

this.mcTotal += args.getBytesTotal();

this.movieclips[this.movieclips.length] = args;

};

};

};

ASSetPropFlags(_global, "Preloader", 7);

Preloader.prototype.getBytesTotal = function() { return this.total; };

Preloader.prototype.addProperty("bytesTotal", Preloader.prototype.getBytesTotal, null);

ASSetPropFlags(Preloader.prototype, "getBytesTotal", 7);

Preloader.prototype.getBytesLoaded = function() { return this.loaded; };

Preloader.prototype.addProperty("bytesLoaded", Preloader.prototype.getBytesLoaded, null);

ASSetPropFlags(Preloader.prototype, "getBytesLoaded", 7);

Preloader.prototype.getBytesLeft = function() { return this.left; };

Preloader.prototype.addProperty("bytesLeft", Preloader.prototype.getBytesLeft, null);

ASSetPropFlags(Preloader.prototype, "addMovieClips", 7);

Preloader.prototype.getPercentage = function() { return this._percentage; };

Preloader.prototype.addProperty("percentage", Preloader.prototype.getPercentage, null);

Preloader.prototype.startPreload = function() {

if(this.movieclips.length) this._interval = setInterval(this, "_main", 100);

};

ASSetPropFlags(Preloader.prototype, "startPreload", 7);

Preloader.prototype.stopPreload = function() {

clearInterval(this._interval);

};

ASSetPropFlags(Preloader.prototype, "stopPreload", 7);

Preloader.prototype.hasMovieClip = function(mc) {

if(mc instanceof MovieClip) {

for(var i = 0; i < this.movieclips.length; i++) {

if(this.movieclips == mc) return true;

};

};

return false;

};

ASSetPropFlags(Preloader.prototype, "hasMovieClip", 7);

Preloader.prototype.addMovieClips = function() {

var args = (arguments[0].length) ? arguments[0] : arguments;

for(var i = 0; i < args.length; i++) {

if(args instanceof MovieClip) if(!this.hasMovieClip(args)) {

this.mcTotal += args.getBytesTotal();

this.movieclips[this.movieclips.length] = args;

};

};

};

ASSetPropFlags(Preloader.prototype, "addMovieClips", 7);

Preloader.prototype.removeMovieClips = function() {

var args = (arguments[0].length) ? arguments[0] : arguments;

for(var i = 0; i < args.length; i++) {

if(!this.hasMovieClip(args)) {

this.mcTotal -= args.getBytesTotal();

for(var j = 0; j < this.movieclips.length; j++) {

if(this.movieclips[j] == args) this.movieclips.splice(j, 1);

};

};

};

};

ASSetPropFlags(Preloader.prototype, "removeMovieClips", 7);

Preloader.prototype._main = function() {

this.total = this.loaded = 0;

for(var j = 0; j < this.movieclips.length; j++) {

this.total += this.movieclips[j].getBytesTotal();

this.loaded += this.movieclips[j].getBytesLoaded();

};

if(this.total != this.mcTotal) {

this.left = this.total - this.loaded;

this._percentage = Math.round(this.loaded*100/this.total);

this.onPreloadUpdate();

};

if(this._percentage == 100) {

this.onPreloadComplete();

this.mcTotal = this.total = this.left = 0;

this.stopPreload();

};

};

ASSetPropFlags(Preloader.prototype, "_main", 7);

MovieClip.prototype.preloadMovie = function(url, variables) {

if(variables.length) this.loadMovie(url, variables);

else this.loadMovie(url);

return new Preloader(this);

};

ASSetPropFlags(MovieClip.prototype, "preloadMovie", 7);

// ------------------------------------------------------------------------

// ENG DTP & Multimidia

// http://www.eng.com.br/

// ------------------------------------------------------------------------

Salve o arquivo como preloader.as no mesmo diretório em que vão estar todos os filmes deste tutorial.

Agora, criaremos os filmes contendo as imagens.

Abra um novo arquivo do Flash MX no tamanho 284 x 160 px, com uma camada e dois quadros-chves.

No primeiro quadro-chave insira a seguinte ação:

this.stop();

Na segunda camada, insira a imagem desejada e a transforme em movie clip.

Exporte e salve o arquivo no mesmo diretório dos outros como "image1" - sem áspas.

Faça o mesmo com os outros quatro arquivos:

image2

image3

image4

image5

Lembre-se de exportá-las!

... é isso ...

Espero q vocês possam me ajudar....

Valeu bjos

Link para o comentário
Compartilhar em outros sites

20 respostass a esta questão

Posts Recomendados

  • 0

você salvou isso aqui como preloader.as???????

se salvou....ele tem q estar no mesmo dir q o .swf.......

ae vai ter q funcionar certim ............

_global.Preloader = function() {

var args = (arguments[0].length) ? arguments[0] : arguments;

this.mcTotal = this.total = this.left = 0;

this.loaded = this._percentage = 0;

this.movieclips = new Array();

for(var i = 0; i < args.length; i++) {

if(args instanceof MovieClip) {

this.mcTotal += args.getBytesTotal();

this.movieclips[this.movieclips.length] = args;

};

};

};

ASSetPropFlags(_global, "Preloader", 7);

Preloader.prototype.getBytesTotal = function() { return this.total; };

Preloader.prototype.addProperty("bytesTotal", Preloader.prototype.getBytesTotal, null);

ASSetPropFlags(Preloader.prototype, "getBytesTotal", 7);

Preloader.prototype.getBytesLoaded = function() { return this.loaded; };

Preloader.prototype.addProperty("bytesLoaded", Preloader.prototype.getBytesLoaded, null);

ASSetPropFlags(Preloader.prototype, "getBytesLoaded", 7);

Preloader.prototype.getBytesLeft = function() { return this.left; };

Preloader.prototype.addProperty("bytesLeft", Preloader.prototype.getBytesLeft, null);

ASSetPropFlags(Preloader.prototype, "addMovieClips", 7);

Preloader.prototype.getPercentage = function() { return this._percentage; };

Preloader.prototype.addProperty("percentage", Preloader.prototype.getPercentage, null);

Preloader.prototype.startPreload = function() {

if(this.movieclips.length) this._interval = setInterval(this, "_main", 100);

};

ASSetPropFlags(Preloader.prototype, "startPreload", 7);

Preloader.prototype.stopPreload = function() {

clearInterval(this._interval);

};

ASSetPropFlags(Preloader.prototype, "stopPreload", 7);

Preloader.prototype.hasMovieClip = function(mc) {

if(mc instanceof MovieClip) {

for(var i = 0; i < this.movieclips.length; i++) {

if(this.movieclips == mc) return true;

};

};

return false;

};

ASSetPropFlags(Preloader.prototype, "hasMovieClip", 7);

Preloader.prototype.addMovieClips = function() {

var args = (arguments[0].length) ? arguments[0] : arguments;

for(var i = 0; i < args.length; i++) {

if(args instanceof MovieClip) if(!this.hasMovieClip(args)) {

this.mcTotal += args.getBytesTotal();

this.movieclips[this.movieclips.length] = args;

};

};

};

ASSetPropFlags(Preloader.prototype, "addMovieClips", 7);

Preloader.prototype.removeMovieClips = function() {

var args = (arguments[0].length) ? arguments[0] : arguments;

for(var i = 0; i < args.length; i++) {

if(!this.hasMovieClip(args)) {

this.mcTotal -= args.getBytesTotal();

for(var j = 0; j < this.movieclips.length; j++) {

if(this.movieclips[j] == args) this.movieclips.splice(j, 1);

};

};

};

};

ASSetPropFlags(Preloader.prototype, "removeMovieClips", 7);

Preloader.prototype._main = function() {

this.total = this.loaded = 0;

for(var j = 0; j < this.movieclips.length; j++) {

this.total += this.movieclips[j].getBytesTotal();

this.loaded += this.movieclips[j].getBytesLoaded();

};

if(this.total != this.mcTotal) {

this.left = this.total - this.loaded;

this._percentage = Math.round(this.loaded*100/this.total);

this.onPreloadUpdate();

};

if(this._percentage == 100) {

this.onPreloadComplete();

this.mcTotal = this.total = this.left = 0;

this.stopPreload();

};

};

ASSetPropFlags(Preloader.prototype, "_main", 7);

MovieClip.prototype.preloadMovie = function(url, variables) {

if(variables.length) this.loadMovie(url, variables);

else this.loadMovie(url);

return new Preloader(this);

};

ASSetPropFlags(MovieClip.prototype, "preloadMovie", 7);

falow!!!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

§tRuTe®

Então.... eu salvei sim esse arquivo de texto como preolader.as

só q não está dando certo...continua aparecendo a menssagem :

Cena=Cena 1, Camada=Scripts, Quadro=1: Linha 4: Diretiva #include mal formulada

#include "preloader.as" // inclui arquivo externo - preloader.as

e tb não tem a junção do arquivo feito somente com as imagens com o resto....

na boa...to boiando !!!!...se puder me ajudar agraderia mtão mesmo

Valeu

Link para o comentário
Compartilhar em outros sites

  • 0

ow......realmente.......num ta danu certo não........

eu tb tentei aqui e num deu não.....

tipo...eu procurei algo sobre o include e achei isso....

#include

Disponibilidade

N/A

Uso

#include "filename.as "

Parâmetros

filename.as O nome do arquivo para o script a ser adicionado ao painel Ações; .as é a

extensão de arquivo recomendada.

Retorna

Nada.

Descrição

Ação; inclui o conteúdo do arquivo especificado no parâmetro quando o filme é testado,

publicado ou exportado. A ação #include é chamada quando você testa, publica ou exporta. A

ação #include é verificada quando ocorre uma verificação de sintaxe.

ae ta falanu q o include é sempre verificado na verificacao de sintaxe.....vai v esse erro é comum....mas q é esse preloader class num funfo....não mesmo...hehe

tenta posta algo sobre, la na sessao da scriptbrasil mesmo reportanu o erro do curso........agora se eu estiver errado tb...alguém posta ae.........rs........

falow!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

wink.gif Boa tarde,

Eu também já refiz este exercício três vezes, o meu também dá o erro mencionado no começo, só que na linha 9, e também não funcionou, já coloquei esta dúvida no meu tópico "Duvidas no curso de flash do iped", até agora não consegui resolver.

Paula

Link para o comentário
Compartilhar em outros sites

  • 0

Seu flash é a versão 5??

O meu 5 dá esse erro, por isso faz assim:

Bom, essa mensagem aparece quando você vai por as primeira action no primeiro frame, Certiu?

Bueno, na janelinha action, tem uma flechinha virada pro lado direito!

Clique nela e ponha no EXPERT MODE!

Agora cole as actions e faça todo o exercicio ateh o fim e teste!

NINJA POWER ph34r.gif

Link para o comentário
Compartilhar em outros sites

  • 0

NINJA POWER ...

O meu Flash mx já está no modo expert coloquei nesse modo logo q comecei a fazer o exercício....mas só por via das dúvias refiz o exercício nesee modo e aparece o mesmo erro:

Cena=Cena 1, Camada=Scripts, Quadro=1: Linha 4: Diretiva #include mal formulada

#include "preloader.as" // inclui arquivo externo - preloader.as

Link para o comentário
Compartilhar em outros sites

  • 0
NINJA POWER ...

O meu Flash mx já está no modo expert coloquei nesse modo logo q comecei a fazer o exercício....mas só por via das dúvias refiz o exercício nesee modo e aparece o mesmo erro:

Ok, você me obrigou a usar meu super poder "ninja resolve" ph34r.gif

No frame SCRIPTS, no código:

-Ache:

#include "preloader.as" // inclui arquivo externo - preloader.as

-Substitua

#include "preloader.as"

(se isso não der certo, huauhaauhuha, VAI dar certo!)

Link para o comentário
Compartilhar em outros sites

  • 0

não ninja ph34r.gif

mas aquilo ali ta certo......num tem erro nas actions....aqui la é apenas um comentario..é como tava no dicionario de action script

A

ação #include é verificada quando ocorre uma verificação de sintaxe.

ou seja..pelo visto deve ser algum bug do flash...q sempre acontece na verificacao de sintaxe...porque o comando ta certim....

Link para o comentário
Compartilhar em outros sites

  • 0

vish........foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..foi mal..!!!!!!!!!!!!!!!!!!!!!!!!!!!!

erro meu mesmo!

auhahuahuahuuah

faze o q não é?..os poderes do NINJA ph34r.gif foram mais fortes....

auhahua...

mas sem zuera agora...foi mal ae........eu errei mesmo...mas aquilo la era só um comment, num tinha q dar o erro...........

mas agora é só colocar o preloader.as no mesmo dir q vai funciona..

falow!!!

Link para o comentário
Compartilhar em outros sites

  • 0
comentários na mesma linha que o include sempre vão dar erro, e algumas coisas mais, tipouma linha de código logo abaixo do include pode ou não dar erro de acordo com a formatação do arquivo incluido, BUG'S QUE SÓ O FLASH TEM

Nunca reparei nisso!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...