Ir para conteúdo

POWERED BY:

Arquivado

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

Mutter

[Resolvido] Loading funcionava em site, mas en jogo não funciona

Recommended Posts

Galera, boa noite.

 

To com um problema estranho.

Sempre utilizei um código pra criar uma barrinha de loading que funciona belezinha.

 

Só que agora estou desenvolvendo um joguinho em flash e, não sei por que diabos, esse código simplesmente não funciona.

 

Alguem pode me dar uma luz?

 

segue o código que eu sempre utilizei

 

onClipEvent (load) {

total = _parent.getBytesTotal();

_parent.stop();

}

onClipEvent (enterFrame) {

loaded = _parent.getBytesLoaded();

pct = Math.floor((loaded/total)*100);

barra._xscale = pct;

porCento = pct+"%";

if (porCento eq "100%") {

_parent.gotoAndPlay(5);

}

}

 

isso fica em um MC.

 

Quem puder, por favor me ajude. Não tenho nem idéia de como resolver isso.

Abraços! http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido

 

Artigos, Tutoriais e Matérias (Flash) http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Flash

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixe sem o parametro _parent

 

Se não der certo substitua o _parent por _root

 

[]'s

 

Caro, obrigado.

 

Mas o pior é que eu ja tentei isso. Num vai. :(

 

Por isso acho estranho... não faz sentido não funcionar... chegue até a copiar o MC inteiro (que funcionava em outro site) e cola-lo na primeiro frame do meu joguinho, mas não funciona.

 

 

 

ESSE É DIFÍCIL!!! POR FAVOR, ALGUEM ME AJUDE!!!

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você esta publicando o swf em qual versão do flash? esta escrevendo em qual dos AS? pode ser isso, vá no projeto deste loading que esta funfando e veja qual tipo de publicação (versão do flash, e AS utilizado) e depois faça o mesmo neste projeto que não esta funfando, pode ser por isso também.

 

O code parece estar certo realmente, a única coisa que vem em minha mente é a incomatibilidade entre os AS, tente no AS 1, AS, 2 ou AS 3.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você esta publicando o swf em qual versão do flash? esta escrevendo em qual dos AS? pode ser isso, vá no projeto deste loading que esta funfando e veja qual tipo de publicação (versão do flash, e AS utilizado) e depois faça o mesmo neste projeto que não esta funfando, pode ser por isso também.

 

O code parece estar certo realmente, a única coisa que vem em minha mente é a incomatibilidade entre os AS, tente no AS 1, AS, 2 ou AS 3.

 

[]'s

Cara, valeu por responder novamente... to testando aqui e descobri uma coisa!

 

Na minha library, tem varios arquivos de som. Descobri que quando os elimino o loading funciona.

 

Mas o problema agora, é que eu preciso dos sons, e preciso que eles sejam carregados junto com o resto. Algum idéia?

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você chama estes soms por AS? se for post o AS ae para analisarmos.

 

Chamo sim.

 

Por exemplo: Assim eu chamo o som de fundo.

 

var somFundo = new Sound();

somFundo.attachSound("fundo");

somFundo.start(0,1000);

 

 

 

E descobri mais uma coisa.

É quando eu configuro o linkage do arquivo de som la na libray que o loading para de funcionar. Se eu deixo os sons lá na library sem linkar, o loading funciona beleza.

Mas sem linkar, eu num consigo usar o "attachSound();".

 

Mas pelo menos agora ja sabemos o que é. Só não sei como resolver...

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim

 

var somFundo:Sound = new Sound();
somFundo.attachSound("fundo");
somFundo.start(0, 99);

 

Pior que não rolou...

 

Como eu comentei, o problema ocorre na hora de nomear o link para o som. O código que chama o som funciona beleza...

 

Já to perdendo as esperanças aqui. Que problema sem nexo...

 

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara já tentou chamar o som mais ou menos assim

 

function() {
somFundo.start(0, 99);
}

Não tenho certeza mais tenta ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara já tentou chamar o som mais ou menos assim

 

function() {
somFundo.start(0, 99);
}

Não tenho certeza mais tenta ae.

 

 

Então... deve funcionar. Mas o problema não é na hora de chamar o som.

 

Para que "somFundo.start(0, 99);", se em função ou de outra forma, esse som deve estar linkado na library com um nome.

A questão é que quando eu linko esse arquivo de audio, o loading para de funcionar, manja?

 

Chamar o som eu chamo de boa, mas pra criar o objeto "somFundo" eu preciso carregar o arquivo de audio da library, e é quando eu coloco nome nesse arquivo que fode o loading...

 

Abraço!

 

 

Muito obrigado pela preocupação cara. Do forum todo você é o unico que ta tentando me dar uma força. Valew mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom nunca vi audio dar problema em loader

 

Mas vamos lá

 

Sua função ta assim:

onClipEvent (load) {
total = _parent.getBytesTotal();
_parent.stop();
}
onClipEvent (enterFrame) {
loaded = _parent.getBytesLoaded();
pct = Math.floor((loaded/total)*100);
barra._xscale = pct;
porCento = pct+"%";
if (porCento eq "100%") {
_parent.gotoAndPlay(5);
}
}

E você quer chamar um som depois disso?

E ta dando erro?

 

Bom erro numero 1.

 

Loader para não dar erros se constroe no onEnterFrame, pois seu som vai estar pelo arquivo inteiro pelo que entendi e seu loader ai só está em 1 clip

 

Mude para fazer no arquivo inteiro que deve funcionar.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom nunca vi audio dar problema em loader

 

Mas vamos lá

 

Sua função ta assim:

onClipEvent (load) {
total = _parent.getBytesTotal();
_parent.stop();
}
onClipEvent (enterFrame) {
loaded = _parent.getBytesLoaded();
pct = Math.floor((loaded/total)*100);
barra._xscale = pct;
porCento = pct+"%";
if (porCento eq "100%") {
_parent.gotoAndPlay(5);
}
}

 

 

E você quer chamar um som depois disso?

E ta dando erro?

 

Bom erro numero 1.

 

Loader para não dar erros se constroe no onEnterFrame, pois seu som vai estar pelo arquivo inteiro pelo que entendi e seu loader ai só está em 1 clip

 

Mude para fazer no arquivo inteiro que deve funcionar.

 

Abraços

 

 

Bom dia e obrigado por responder!

 

Então cara, vou explicar de novo porque acho que não estou conseguindo fazer a galera entender oque ta acontecendo.

 

Já tinha testado tirar o loading do MC, fica assim (no 1° frame):

 

stop();

total = _root.getBytesTotal();

onEnterFrame = function () {

carregado = _root.getBytesLoaded();

pct = Math.floor((carregado/total)*100);

barra._xscale = pct;

porCento = pct+"%";

if (porCento eq "100%") {

gotoAndStop(3);

}

};

 

 

Mas ainda não funciona... :( :(

 

 

Vamos ao problema.

 

 

1° - Estou desenvolvendo um jogo de navinha, tipo "Space Invaders", e nesse jogo eu tenho 3 arquivos de áudio (Mp3) na minha library.

 

2° - Para chamar esses arquivos de áudio, eu estou criando um objeto, por exemplo:

 

var somFundo = new Sound(); //para criar o objeto.

somFundo.attachSound("fundo"); //para colocar o meu mp3 chamado fundo dentro desse meu objeto.

 

E para toca-lo eu uso:

somFundo.start(0,1000); //para executar o som e repeti-lo 1000 vezes (já que este é o loop de fundo)

 

3° - Até ai tudo funciona. Só que para fazer desta forma, usando "attachSound()", eu preciso linkar o meu arquivo de mp3 lá na library.

Manja...? Clicar com o direito sobre o arquivo e selecionar "linkage" , para que o "attachSound("fundo")" funcione.

 

4° - Então o problema todo (Muito estranho) é o seguinte:

 

Se eu simplesmente deixar os sons na library, o loading funciona como sempre funcionou, mas basta eu "linkar" apenas um dos arquivos de audio

que o loading para de funcionar.

 

É aí que está a "Mer...". Não conheço outra forma de utilizar os sons dinamicamente sem ter que "linka-los", e se faço isso o loading não funciona mais.

 

 

HHHHHHEEEEELLLLLLPP!!!

 

 

Abraços e obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vamos aos problemas :)

 

1 - Ao você colocar uma musica de fundo com attachSound você vai aumentar enormemente o tamanho de seu arquivo colocando essa musica na biblioteca.

 

2 - Quando você colocar qualquer tipo de linkage você não vai conseguir fazer um preloader pelo simples fato que o som é carregado antes de qualquer coisa... então para você conseguir "carregar ele com load" crie um loadClip com carregador que talvez você consiga resolver seu problema.

 

3 - A melhor solução seria colocar o arquivo em uma pasta e carregar ele usando um XML e carregar esse xml no seu arquivo flash e então usar o loadSond ;). Como se usa nos MP3 players em flash

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vamos aos problemas :)

 

1 - Ao você colocar uma musica de fundo com attachSound você vai aumentar enormemente o tamanho de seu arquivo colocando essa musica na biblioteca.

 

2 - Quando você colocar qualquer tipo de linkage você não vai conseguir fazer um preloader pelo simples fato que o som é carregado antes de qualquer coisa... então para você conseguir "carregar ele com load" crie um loadClip com carregador que talvez você consiga resolver seu problema.

 

3 - A melhor solução seria colocar o arquivo em uma pasta e carregar ele usando um XML e carregar esse xml no seu arquivo flash e então usar o loadSond ;). Como se usa nos MP3 players em flash

 

Abraços

 

Certo! Eu entendi em partes, a pesar de nunca ter usado flash + xml. Mas isso eu procuro algum tuto...

 

O problema, é que eu tenho outros sons, que são barulhos de moedas sendo coletadas e tiros, que eu preciso carregar tudo antes do jogo iniciar. Esses sons eu posso fazer dessa forma também? Eles serão carregados antes do jogo começar?

 

 

Da uma olhada no meu prototipo pra entender melhor!

http://www.bourdielart.com.br/arquivos/jog...rototipo05.html

 

Está bem feio ainda, e os sons não serão esses. Estou só testando os conceitos e depois pretendo melhorar tudo.

Mas já da pra ter uma idéia. :)

 

 

 

Valewwwww!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque todos os sons no XML

E carregue esse xml

 

ai só usar o som assim :)

 

Ou você simplesmente não usa XML

e coloca todos os sons dentro de uma array

 

tipo

var sons:Array = new Array("tiro.mp3","carrega.mp3","fundo.mp3","moeda.mp3");
//Ai você só vai ter que carregar o valor certo exemplo:
var s:Sound = new Sound();
s.loadSound(sons[0]);
Ai você vai ter carregado o som de tiro ;)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque todos os sons no XML

E carregue esse xml

 

ai só usar o som assim :)

 

Ou você simplesmente não usa XML

e coloca todos os sons dentro de uma array

 

tipo

var sons:Array = new Array("tiro.mp3","carrega.mp3","fundo.mp3","moeda.mp3");
//Ai você só vai ter que carregar o valor certo exemplo:
var s:Sound = new Sound();
s.loadSound(sons[0]);
Ai você vai ter carregado o som de tiro ;)

 

Abraços

 

Cara, fiz com array e funciona beleza...

 

Mas assim ele não tava carregando tudo antes de começar o jogo. Já que o meu "getBytesTotal()" do loading, não enxerga os arquivos Mp3 que serão carregados depois.

Mas eu fiz o segunte, para que os sons sejam carregados no 1° loading.

 

 

Dá uma olhada, você manja mais e pode ser que haja um modo melhor de se fazer isso.

 

 

stop();
barra._xscale = 0;
var sons:Array = new Array("fundo.mp3","tiroNave.mp3","pegaCoin.mp3");

var somFundo:Sound = new Sound();
somFundo.loadSound(sons[0]);

var somTiroNave:Sound = new Sound();
somTiroNave.loadSound(sons[1]);

var somPegaCoin:Sound = new Sound();
somPegaCoin.loadSound(sons[2]);

total = somFundo.getBytesTotal()+somTiroNave.getBytesTotal()+somPegaCoin.getBytesTotal();


onEnterFrame = function () {	
	total = somFundo.getBytesTotal()+somTiroNave.getBytesTotal()+somPegaCoin.getBytesTotal();
	carregado = somFundo.getBytesLoaded()+somTiroNave.getBytesLoaded()+somPegaCoin.getBytesLoaded();
	pct = Math.floor((carregado/total)*100);
	barra._xscale = pct;
	porCento = pct+"%";
	if (porCento eq "100%") {
		gotoAndStop(3);
	}
};

 

Valew pela força! Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso ai mesmo :)

 

Eu só talvez carregaria em cadeia, pois acho mais fácil assim.

 

Coloca um for e vai carregando 1 por 1 pegando tamanho e dizendo o nome de que arquivo ta sendo carregado ;)

 

Mas cada um faz do jeito que achar melhor.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso ai mesmo :)

 

Eu só talvez carregaria em cadeia, pois acho mais fácil assim.

 

Coloca um for e vai carregando 1 por 1 pegando tamanho e dizendo o nome de que arquivo ta sendo carregado ;)

 

Mas cada um faz do jeito que achar melhor.

 

Abraços

OK, berseck!!!

 

Muito obrigado, cara! Ajudou pra caramba!

 

Obrigado ao Patrique também!!!

 

Grande abraç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.