Bom hoje vou ensinar como colocar criar botões dinamicamente com textos diferentes utilizando duplicateMovie não é lá muito dificil uma vez que já ensinei como funciona nesse link então agora vamos aplicar um texto dentro de um movie clip
Para isso vamos usar o seguinte código:
//Crio os clips duplicados
var container:MovieClip = setUpContainer();
//Crio a variavel que vai criar o numero maximo de botões
var ln:Number = 10;
//O espaço entre 1 e outro.
var spacer:Number = 1;
//Crio o clip que vai receber o clip duplicado
var duplicate:MovieClip;
//For que vai botas tudo para funcionar
for(var i:Number = 1; i < ln; i++) {
var newY:Number = i * (container._height + spacer);
duplicate = container.duplicateMovieClip("clip-" + i, i, {_y:newY});
//Aqui eu inicio o campo de texto que vai ter o conteudo dos meus botões
var campo:TextField = duplicate.createTextField("campo",this.getNextHighestDepth(),20,20,100,20);
duplicate.campo.background = true;
duplicate.campo.embedFonts = true;
duplicate.campo.border = true;
duplicate.campo.backgroundColor = 0xFFFFFF;// branco
duplicate.campo.borderColor = 0×000000;// preto
duplicate.campo.multiline = true;
duplicate.campo.wordWrap = true;
duplicate.campo.html = true;
meuFormato = new TextFormat();
meuFormato.font = "my_font";
meuFormato.size = 10;
meuFormato.color = 0×000000;
duplicate.campo.setNewTextFormat(meuFormato);
duplicate.campo.text = duplicate._name;
//Coloco o botão aqui
duplicate.onPress = onclick;
}
//Uma funçãozinha de clic só para mostrar como coloca botão
function onclick(){
trace("cliquei no clip: "+this._name);
}function setUpContainer():MovieClip {
//crio o mc que vai se repetir
var mc:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
//Do o tamanho dele
var w:Number = 20;
//Do a altura dele
var h:Number = 20;
//Cor que ele vai ser preenchido
mc.beginFill(0xFFFFFF);
//Crio as linhas do mc
mc.lineTo(w, 0);
mc.lineTo(w, h);
mc.lineTo(0, h);
mc.lineTo(0, 0);
mc.endFill();
//Retorno o clip
return mc;
}
Bom o código ta todo comentado com cada coisa o que faz ![]()
Agora é só dar nome aos botões e ser feliz ^^
Abraços e até a proxima
Apenas uma coisa no meu teste que não sei onde se encontra o problema…
duplicate.campo.htmlText = “teste”;
Não está aparecendo…
Você colocou, uma font em sua biblioteca e colocou o linkage de my_font? se não fez, não vai funcionar… pois como está configurado para usar uma font externa você tem que colocar a font na biblioteca ou deletar a linha onde contem meuFormato.font
Abraços
Beleeeeeza… Era isso mesmo…bobeira minha..rsrs
Pergunta meio nada a ver. A barra de rolagem (UIScrollBar) pode ser configurada para fazer um scroll em varios destes links criados dinamicamente dentro de um outro MC ou só serviria para o text? Existe uma forma (ou outra) de fazer isso, já que o meu container deverá ter uma altura fixa, mas os links podem extrapolar esta altura? Já tá tudo bagunçado na cabeça, mas acho q usando este exemplo pode haver uma forma…
Tenho um botão inicial desta forma
on(release){
// coloco dentro do mc slide_box o box externo
_root.slide_index.loadMovie(“box_news.swf”);
// chamo a função para criação do link
cria_texto_newsAll();
}
Dentro da função texto_newsAll() deverá ter todo um código (que seria de começo algo semelhante ao que você postou) só q com um scroll ( que de preferencia se pudesse ser o UIScroll seria ótimo)…
Poder pode… basta que você re sete o uiScroll a para cada campo de texto… UIScrollBar foi feito para textos e não imagens… imagePane foi feito para imagens.
Mas pode uma vez que você sete os valores corretamente, e coloque o código correto ele deve fazer em tudo.
Mas lembro que se você tiver varios textos separados não tem como setar 1 scroll para todos eles… (na verdade dá… mas vai da muito trabalho e pode bugar) Então você vai ter que usar mais de um scroll… no caso 1 para cada texto.
Abraços
Então já era. Uma forma diferente seria se tivesse uma outra forma de colocar os linhas para funções diretamente dentro dos texts, sem botões, mas ae acho q já não existe esta opção. A listagem vai ter q ser feita de outro jeito então com uma paginação.