Ir para conteúdo

POWERED BY:

Arquivado

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

Mecho com php e Html

Colocar botão dentro de um movie clip

Recommended Posts

Gente, o que eu quero é o seguinte:

Vou posicionar um movieclip em um certo lugar da animação. Acontece que, dependendo do usuário, o que ele verá naquele lugar será diferente. No caso de alguns usuários, eles verão um botão e outros apenas uma imagem. Para os que verão uma imagem, eu uso o loadMovie sem problemas. Para aqueles que verão o botão que eu estou com um problema. Gostaria que um botão (chamado Edit_Info, que já está na biblioteca) fosse colocado dentro do movie clip. Seria algo parecido com:

loadMovie("Edit_Info", "Edit_Slot");

Mas, fazendo isso, não dá certo. Alguém tem alguma idéia do que eu possa fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vai usar o attachMovie, dessa forma:

 

attachMovie("Edit_Info", "novo_nome", 1) // sendo que 1 é o depth

 

Não esqueça que na library não basta o nome do movieclip ser "Edit_Info", você precisa ir em properties e ticar o "export for action script" e dar ali um linkage com o nome de "Edit_Info"

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, muito obrigado pela ajuda, mas eu acho que você não entendeu a pergunta.

O que eu quero na verdade não é "duplicar" esse botão, mas sim, adicioná-lo ao movie clip Edit_Slot. como um LoadMovie faria.

Eu criei uma gambiarra, mas não gosto muito de gambiarras. Ela fica mais ou menos assim:

attachMovie("Edit_Info", "novo_nome", 1);
novo_nome._x = Edit_Slot._x;
novo_nome._y = Edit_Slot._y;

 

Mas, eu queria um código oficial, que já faria do jeito certo. Alguma idéia de como eu poderia fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi, muito bem. Mas você pode criar um botao animado, totalmente pela IDE.

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, cara, é o seguinte.

Se eu usasse loadMovie, eu carregaria uma imagem dentro de um movie clip, certo.

O que eu quero é uma função parecida com o loadMovie, só que em vez de carregar uma imagem dentro de um movie clip, ela carregaria um botão dentro de um movie clip. Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o botão é outro swf? se for pode usar load movie,so precisa colocar a extensão swf loadMovie('botao.swf','movieClip Alvo')

agora se ele estiver exportado para AS, usa attachMovie("INSTANCIA QUE FOI EXPORTADO","NOVA INSTANCIA ",1) //sendo que 1 e o depth a se quiser que fique por cima de tudo pode usar getNextHighestDepth(),

 

Acho que e algo assim se entendi, espero ter ajudado !

 

Abraços !

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, pelo visto não há como fazer o que estou querendo. Vou deixar no improviso mesmo. De qualquer forma, tenho mais duas dúvidas:

1. Como coloca action nesse botão que acabei de criar pelo AttachMovie?

 

2. Como definir o _x do botão se eu não sei o nome de estância ao certo (olhem um exemplo):

var i = 1;
var nome = "nome_novo" + i;
attachMovie("botao", nome, 1); //isso funciona e é criado um novo botão com o nome "nome_novo1"
nome._x = 50; //já esse e o de baixo, não funcionam.
nome._y = 50;

 

Alguma ideia de como resolver minhas duas dúvidas??

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa assim,

 

attachMovie("botao","botao_"+i,1)

 

e como está usando i, suponho que seje mais que um botão,

então você vai ter que usar um for(){} se quiser posicionar todos,mas se for só 1 é assim

["botao_" + i].x = 50

["botao_" + i].y = 50

 

ja vo de dar uma colher de chá.. se for usar o for usa assim.

onde tamanho e o numero de vezes que quer que repita

var tamanho:Number = 10

for (i = 0; i < tamanho; i++){

attachMovie("botao","botao_"+i,i)//adiciona 10vz

["botao_" + i].x = 50  //posiciona os 10 
["botao_" + i].y = 50 * i // um embaixo do otro
}

 

Abraços !

Compartilhar este post


Link para o post
Compartilhar em outros sites

tou ligado... o for tem no php, daí eu já sei.

e no meu caso, não é para posicionar um embaixo do outro. Há uma perspective e é um pouquinho mais complexo... tem q mudar o x e o y

valeu pela ajuda, cara!!!

 

e cara, minha primeira pergunta ainda não foi respondida... como eu coloco action nesse botão recem criado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Informe como será essa perspectiva (qual o local dos objetos para visualização).

 

Conforme o caso é usado um for dentro de outro for para posicionar em x e y.

 

Sobre o action para os botões, verifique a possibilidade de exportar a classe pela library e instanciar em uma variável.

 

Adicione à visualização e posicione no for.

 

Para outras ações, crie funções específicas.

 

 

 

Uso AS3, não repare a disposição em tentar auxiliar. :innocent:

 

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

a questão da perspectiva está resolvida, gente. Minha dúvida é específica do flash (colocar ação no botão recém criado).

Tentei fazer isso que você falou, Elektra, mas tive um problema. Se eu faço isso, a ação de todos os botões têm que ser a mesma. Eu não quero a mesma ação. São ações diferentes.

Será que há outro jeito??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste exemplo (em AS3) é usado um movie clip como container, e os botões são movie clips ativados (buttonMode = true) com texto carregado via XML.

 

Observe que é definido um 'name' (propriedade), que torna cada botão único.

 

                 for(var i:uint = 0; i < menuXml.itemmenu.length(); i++)
                       {
	 	im = new ItemMenu();
		im.x = posX;
		im.y = posY;
		posFinX = posX;
		posX += im.width + 10;
		im.name = String("btn" + i);
		im.btnLabel.text = menuXml.itemmenu[i].nome;
		im.btnLabel.autoSize = "left";
		containerMenu.addChild(im);

                       im.addEventListener(MouseEvent.CLICK, clicaBtn);
		}

 

Aqui cada botão do menu carrega uma página diferente usando a mesma função.

 

 

Talvez o uso dessa propriedade possa dar uma idéia de como fazer o que precisa. Há outras formas de usar para definir um nome de instância para objetos carregados da library.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

e outra... o script abaixo não está funcionando. Eu tinha testado, mas pareceu que deu certo. Dava pra fazer tudo com o botão. Acontece que ele não tinha sido posicionado. Quando fui testar dois, eu percebi isso. Há outro método?

["botao_" + i].x = 50  //posiciona os 10  
["botao_" + i].y = 50 * i // um embaixo do otro 

Compartilhar este post


Link para o post
Compartilhar em outros sites

gente, eu percebi o erro. O certo é não colocar o ponto. ficaria assim:

var i = 1; 
attachMovie("quadrado", "botao_"+i, 1); //quadrado é um movieclip esportado para action script com esse nome 
["botao_"+i]_x = carr._x; // carr é o nome de instância de um movieclip que se encontra no stage 
["botao_"+i]_y = carr._y;

 

O código acima funciona perfeitamente. Porém, há um pequeno problema. Sempre que crio um novo attachMovie, o anterior some. Por exemplo, se faço isso, ele não funciona. Só mostra o quarto botão que foi criado. Os outros três, ele não mostra. Por que será?:

 for (i=1; i<5; i++) {
attachMovie("quadrado", "botao_"+i, i);
["botao_"+i]_x = 140*i - 140;
["botao_"+i]_y = 100*i - 100;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele não está ficando por cima do outro?

tente aumentar e diminuir os depth, pra ver como esta,

Compartilhar este post


Link para o post
Compartilhar em outros sites

não. mesmo se eu use o getnexthighestdepth, ele ainda não funciona. Coloquei um timer para ver o que acontece, setando um botão por vez e quando o segundo entra, ele apaga o primeiro. Quando o terceiro entra, ele apaga o segundo, e assim vai.

Eu consegui fazer de outra forma, colocando o x e o y como parâmetros. Tá Resolvido. Ficou assim:

for (i=1; i<5; i++) { 
       attachMovie("quadrado", "botao_"+i, i, {_x:140*i - 140, _y:100*i - 100});
}

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.