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

Tranformar um mc criado dinamic em um botão e atribuir a ele uma acão?


jfilho

Pergunta

olá galera,

seguinte...

no meu palco tenho um mc chamado quadro_mc vazio que recebe outros swf quando clico em um botão ,também no palco principal.

Tou querendo saber o seguinte...

um dos swf que carregam nesse quadro_mc é o fotos.swf, ação efetuada quando se clica em um botão.

Criei um movieclip por actionscript ...(dentro do fotos.swf)..

e mandei carregar uma foto dentro dele....

root.createEmptyMovieClip..........

loadMovie(" fotos/imagem1.jpg","alvoFoto1");

só que quando testei o site todo, não funciona....

então alterei onde está root.create.....para root.quadro.mc.create e funcionou legal.

A minha dúvida é a seguinte.....

Preciso que quando o usuario clique nesse movieclip ele execute uma ação.

Porém não estou conseguindo fazer isso.

alvofoto1.onrelease.......não funciona...

eu vou testar e não aparece a mãozinha quando passo o mouse por cima do mc que tem uma figura carregada.

tentei fazer com o onclipevent mas não conseguie também...

Alguém pode me dar uma luz de como fazer isso?

Tranformar um mc criado dinamicamente em um botão e atribuir a ele uma acão??

Editado por jfilho
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Seu texto ta um pouco confuso.

Pelo que entendi é assim:

se ele não tive nome de instancia coloque "btn" sem aspas.

Va no frame e coloque:

btn.onPress = function(){

trace("O botão está funcionando");
}
ou então Selecione ele e aperte f9
on(press){

trace("O botão está funcionando");
}

Se não for isso tente explicar melhor.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --jfilho --

obrigado por tentar ajudar...vou te mostrar o codigo....

não tenha nada no palco..apenas uma layer e um frame que contem o seguinte código:

//////////////////////////////////////////////////////////////////////Parte 1

_root.quadro_mc.createEmptyMovieClip("foto1", 201);

_root.quadro_mc.createEmptyMovieClip("foto2", 202);

_root.quadro_mc.createEmptyMovieClip("foto3", 203);

_root.quadro_mc.createEmptyMovieClip("foto4", 204);

foto1._x = 8;

foto1._y = 30;

foto2._x = 178;

foto2._y = 30;

foto3._x = 348;

foto3._y = 30;

foto4._x = 518;

foto4._y = 30;

loadMovie(" fotos/leite1.jpg",foto1);

loadMovie(" fotos/leite2.jpg",foto2);

loadMovie(" fotos/leite3.jpg",foto3);

loadMovie(" fotos/leite4.jpg",foto4);

// permite que o FlashPlayer reconheça acentos e cedilha

System.useCodePage = true;

//crio um campo de texto dinâmico com seus parâmetros

_root.quadro_mc.createTextField("campo",20,10,5,200,20);

//profundidade/posição em x/posição em y/largura/altura

campo.background=false;

campo.border=false;

campo.backgroundColor=0xFFFFFF; // branco

campo.borderColor=0x000000; // preto

campo.multiline=true;

campo.wordWrap=true;

campo.variable="meuTexto";

// crio um objeto Textformat

meuFormato = new TextFormat();

meuFormato.font = "Arial";

meuFormato.size = 14;

meuFormato.bold = true;

meuFormato.color=0xFFFFFF;// branco

// aponto o formato para nosso campo de texto

campo.setNewTextFormat(meuFormato);

// carregar nosso texto

loadVariables("fotost1.txt", "_root.quadro_mc");

//////////////////////////////////////////////////////////////////////Parte 2

_root.quadro_mc.createTextField("campo1",30,10,150,200,20);

campo1.background=false;

campo1.border=false;

campo1.backgroundColor=0xFFFFFF; // branco

campo1.borderColor=0x000000; // preto

campo1.multiline=true;

campo1.wordWrap=true;

campo1.variable="meuTexto2";

//aponto o formato para nosso campo de texto

campo1.setNewTextFormat(meuFormato);

// carregar nosso texto

loadVariables("fotost2.txt", "_root.quadro_mc");

//movieclips que carregam as fotos

_root.quadro_mc.createEmptyMovieClip("foto5", 301);

_root.quadro_mc.createEmptyMovieClip("foto6", 302);

_root.quadro_mc.createEmptyMovieClip("foto7", 303);

_root.quadro_mc.createEmptyMovieClip("foto8", 304);

foto5._x = 8;

foto5._y = 170;

foto6._x = 178;

foto6._y = 170;

foto7._x = 348;

foto7._y = 170;

foto8._x = 518;

foto8._y = 170;

loadMovie(" fotos/pascoa1.jpg",foto5);

loadMovie(" fotos/pascoa2.jpg",foto6);

loadMovie(" fotos/pascoa3.jpg",foto7);

loadMovie(" fotos/pascoa4.jpg",foto8);

///////////////////////////////////////////////////////////////////Fim

Dessa forma aparecem no palco oito movieclips com oito fotos carregadas dentro deles.

Quero que quando o usuário passe o mouse encima dessa fotos(mcs) elas executem uma ação.

tentei adicionar os seguintes codigos no final, mas nenhum deles funciona.

Quando vou testar nenhum deles aparecem a maozinha quando se passa o mouse em cima.

1- _root.quadro_mc.foto1.onPress = function(){

getURL("www.uol.com.br","_blank");

}

2- foto1.onPress = function(){

getURL("www.uol.com.br","_blank");

}

não quero que quando o usuario clique em uma das fotos, abra a pagina do uol, usei o geturl so pra ver se conseguia fazer os movieclips se comportarem como botões.

Link para o comentário
Compartilhar em outros sites

  • 0

Fala...

Isso realmente gera muito dúvida na galera que usa o MovieClip como um Botão...

O problema é que, você está criando um MovieClip dinamicamente pelo que eu vi, e atribui a ele uma ação de onPress...

você pode atribuir a ele qualquer ação... onRollOver... onRollOut... onRelease... nenhuma delas vai funcionar, rs...

Um dos estados de um botão é o Hit... Como o MovieClip não tem estados, nós precisamos simular.. E não só o RollOver RollOut e Press.. Mas o Hit tb.. ou seja, quando você está atribuindo uma ação ao MovieClip, provavelmente ele não carregou a foto ainda, e por isso ele não tem nenhum conteudo interno.. nenhum shape que possa servir de Hit... então, o clique não vai ativar!!!

Não sei se você vai trabalhar on ou off-line com essa programação...

Se for on-line, eu aconselharia você a manipular o carregamento das imagens, porque pela lógica, depois que você carrega a foto, ai sim o MovieClip tem um shape... que é a foto... pode procurar sobre a classe MovieClipLoader()

Se for off-line, você pode fazer uma pequena gambiarra e usar o setInterval.. cria uma função que atribui as ações ao MovieClip, e dá um setInterval de 2 segs... q ai dá tempo dele processar... você dando um loadMovie e logo na linha de baixo atribuindo um evento Press ou Release, talvez não dê tempo do mesmo processar!!

espero ter ajudado ai...

abraços!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --jfilho --

olá galera.

Obrigado por tentarem me ajudar, mas já resolvie o problema

li em algum lugar que quando você carrega algum conteudo paa um movie-clip..uma foto no caso, ele perde parte das suas funcionalidades como a que detecta eventos do mouse

o que fiz foi criar o movie-clip, dentro dele criar outro movie-clip , carregar a foto e usar o primeiro como botão....

Achei a explicação por ai, mas não me lembro onde...

se alguém quiser mais detalhes....

Vlew amigos.

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...