Jump to content
Fórum Script Brasil
  • 0

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


jfilho

Question

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??

Edited by jfilho
Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...