Ir ao conteúdo

Posts recomendados

Postado

Oi galerinha,

tudo okay!?

Estou com probleminhas no flash.

Eu programo em AS2, mas estou com um projeto novo e precisei migrar pro AS3 e tô me embolando em algumas partes.

Seguinte...

Estou fazendo um jogo.

Tenho os seguintes arquivos:

jogo.swf

instrucoes.swf

E as minhas classes

Daí durante o jogo, a pessoa pode clicar em instruções, aí eu faço um load de instrucoes.swf em cima do jogo.swf

Só que eu queria poder fechar as instrucoes.swf quando a pessoa terminasse de ver, porque se eu ficar dando load o tempo todo, vai ficar pesado uma hora.

Sendo que...

loadMovie e UnLoadMovie não funcionam no AS3.

O fscommand("quit"); não dá erro, mas também não quer funcionar.

Meu código está assim:

Em jogo.swf criei um botão chamado instruções:

instrucoes.addEventListener(MouseEvent.MOUSE_UP, instr);

function instr(event:MouseEvent):void {

var carregador:Loader = new Loader();

var arquivo:String = "instrucoes.swf";

var requisicao:URLRequest = new URLRequest(arquivo);

carregador.x = 0;

carregador.y = 0;

carregador.load(requisicao);

this.addChild(carregador);

}

Em instrucoes.swf criei um botao jogo:

jogo.addEventListener(MouseEvent.MOUSE_UP, jogar);

function jogar(event:MouseEvent):void {

fscommand("quit");

}

Não dá erro o fechar, simplesmente não funciona!

Já o Load do jogo para as instruções funciona perfeitamente.

O que eu façoooo? :confused:

Postado

Eu de novo...

consegui parcialmente resolver o problema, criando a seguinte função em vez de usar fscommand:

jogo.addEventListener(MouseEvent.MOUSE_UP, jogar);

function jogar(event:MouseEvent):void {
var numero:int = numChildren;
while (numero >=0){
removeChildAt(numero -1);
numero = numero-1;
}}

Só que, apesar de funcionar, quando eu clico no botão pra fechar as instruções, ele fecha, mas dá o seguinte erro:

RangeError: Error #2006: The supplied index is out of bounds.

at flash.display:: DisplayObjectContainer/removeChildAt()

at instrucoes_fla:: MainTimeline/jogar()

O que eu faço pra sumir com esse erro???

Postado

Vamos lá.

Primeiro, creio que você deve fazer uma chamada ao sua funcão de loading:


var arquivo:Loader;

[COLOR=Red][COLOR=Black]instrucoes.addEventListener(MouseEvent.CLICK,carregar("instrucoes.swf"));


function carregar(Event:MouseEvent, arquivo:string):void {

arquivo= new Loader();

arquivo.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, carregando);
arquivo.contentLoaderInfo.addEventListener(Event.COMPLETE, carregou);


arquivo.load(new URLRequest(arquivo));
arquivo.x=0;
arquivo.y=0;

}


function carregando(Event:ProgresEvent):void {
// Sua animação de loading
}

function carregou(Event:event):void {
addChild(arquivo);
}
[/COLOR]
[/COLOR]

Bom, para remover é so você usar o "RemoveChild(arquivo)".

Eu geralmente faço assim.

valeu

Postado

Obrigadããããão! :)

Depois vou dar uma analisada melhor no que você fez! ^_^

Acabou que nessa madrugada, com a ajuda de um amigo, eu arranjei uma ouuuuutra solução, só que ainda não está perfeita tb, mas pelo menos é melhor que essa forma que eu apresentei, reduz todo o AS em um único .fla

Mas agora os problemas são bemmmm menores =]

Coisa de detalhe. Mas não vou mexer nisso hoje.

Assim que escolher (terminar) o código eu posto aqui.

  • 10 anos depois...
Postado

Olá...

Para criar um botão fechar em as3

ter uma imagem de botão fechar...

coloque a imagem no palco.

clique F8 converter como botão, no nome coloque quit

e nome de instância coloque btn_quit

e clique F9, ao abrir o painel de códigos, escreva:

function quit(event:MouseEvent ): void
{
    fscommand("quit");
}
quit_btn.addEventListener(MouseEvent.MOUSE_DOWN,quit);

//Botão criado no palco nome: quit e nome de instancia quit_btn

 

E salve.

No swf você testará o botão fechar, e estará perfeitamente funcionando.

Lembrando que, na execução diretamente do adobe não funciona porque o próprio quadro de execução tem um botão fechar,isso é lógico. Mas sugiro que salve. Ao abrir o swf estará cumprindo tal função de fechar!

Abraços!

btf.png

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!