Ir para conteúdo

POWERED BY:

Arquivado

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

F-gos

botão dynamico com texto

Recommended Posts

Pessoal estou criando um menu de noticias com xml e as2.0 e os botoes são um movieclip com uma caixa de texto dentro para exibir os titulos das noticias.

 

O problema é que a caixa de texto dentro do movie clip esta limitada a apenas 2 linhas de informação, se o texto do titulo for maior que 2 linhas ele não aparece. Gostaria de saber como fazer para que o movie clip fique com o mesmo tamanho da caixa de texto e quando o texto for maior que as 2 linhas a caixa de texto altere o seu tamanho automaticamente mostrando toda informação e o mc tbm.. alguem pode dar uma força ai!!!

 

 

beleza desde ja agradeço pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só colocar autoSize = true na caixa de texto

 

Da uma olhada no código:

var container:MovieClip = _root.createEmptyMovieClip('container',1);
var titleLabel:TextField = container.createTextField('titleLabel', 2, 0, 0, 550, 50);
var color:Color = new Color(container);
color.setRGB(0xFFFFFF);

trace(container._height)

container.titleLabel.background = true;
container.titleLabel.backgroundColor = 0x000000;
container.titleLabel.border = true;

container.titleLabel.autoSize = true;
container.titleLabel.wordWrap = true;
container.titleLabel.multiline = true;
container.titleLabel.textAlign = "justify";

container.titleLabel.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed pharetra, leo id porttitor facilisis, urna orci tempor justo, nec porttitor magna elit at nibh. Fusce ut nulla sed magna pulvinar rhoncus. Aliquam ligula libero, rutrum id vulputate et, scelerisque vitae urna. Nunc arcu mauris, fringilla nec feugiat a, mattis a tellus. Vivamus id lectus a orci dignissim condimentum. Donec rutrum pellentesque nulla, sit amet lacinia lectus scelerisque at. Phasellus gravida mi quam. Suspendisse ac diam est, ultricies rutrum nibh. Duis at mauris ante, a pretium dolor. Morbi et dolor quis nibh pulvinar iaculis in id neque. Mauris dolor quam, adipiscing ac tempus eget, hendrerit commodo sapien. Aliquam pellentesque neque eu eros lobortis ut hendrerit est pretium. Vivamus dolor lectus, lacinia in gravida vel, eleifend condimentum nunc. Vivamus fringilla hendrerit bibendum. Curabitur in mi nibh, aliquam dapibus lorem. ";

trace(container._height)
Só copiar e colar não precisa criar nada :)

 

Repare na diferença dos trace quando colocar pra rodar.

 

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Berseck como pegar o valor do trace e transformar em variavel para fazer a duplicação do menu... 1 abaixo do outro na posição correta tipo 1 2px abaixo do outro.???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uia tu teve problemas pra publicar a resposta heim...

A tempos que eu não via esse tipo de erro no forum.

 

Ué se você ta fazendo num loop que vai criar um novo container a cada loopagem com o texto... você cria uma variavel externa que vai sempre ser responsavel pelo proximo valor

ex:

var altura:Number = new Number(0);

var container:MovieClip = setUpContainer();
var duplicate:MovieClip;
for(var i:Number = 1; i < 10; i++) {
	var newY:Number = altura;
	trace(newY);
	duplicate = container.duplicateMovieClip("clip-" + i, i, {_y:newY});
	var titleLabel:TextField = duplicate.createTextField('titleLabel', 2, 0, 0, 550, altura + 20);
	
	var color:Color = new Color(duplicate);
	color.setRGB(0xFFFFFF);
	
	duplicate.titleLabel.background = true;
	duplicate.titleLabel.backgroundColor = 0x000000;
	duplicate.titleLabel.border = true;
	
	duplicate.titleLabel.autoSize = true;
	duplicate.titleLabel.wordWrap = true;
	duplicate.titleLabel.multiline = true;
	duplicate.titleLabel.textAlign = "justify";
	
	duplicate.titleLabel.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed pharetra, leo id porttitor facilisis, urna orci tempor justo, nec porttitor magna elit at nibh. Fusce ut nulla sed magna pulvinar rhoncus. Aliquam ligula libero, rutrum id vulputate et, scelerisque vitae urna. Nunc arcu mauris, fringilla nec feugiat a, mattis a tellus. Vivamus id lectus a orci dignissim condimentum. Donec rutrum pellentesque nulla, sit amet lacinia lectus scelerisque at. Phasellus gravida mi quam. Suspendisse ac diam est, ultricies rutrum nibh. Duis at mauris ante, a pretium dolor. Morbi et dolor quis nibh pulvinar iaculis in id neque. Mauris dolor quam, adipiscing ac tempus eget, hendrerit commodo sapien. Aliquam pellentesque neque eu eros lobortis ut hendrerit est pretium. Vivamus dolor lectus, lacinia in gravida vel, eleifend condimentum nunc. Vivamus fringilla hendrerit bibendum. Curabitur in mi nibh, aliquam dapibus lorem. ";
	
	altura += duplicate._height;
}

function setUpContainer():MovieClip {
	var mc:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
	return mc;
}

;) Have fun :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

então cara... num conseguia postar de jeito nenhum......hehehe!!!

Valeu pela dica.. t+

 

Cara não consegui fazer oq você falou... veja meu código..

 

System.useCodepage = true;

var styles:TextField.StyleSheet = new TextField.StyleSheet();
styles.onLoad = function(success:Boolean):Void { 	
if (success) { 	
	trace(this.getStyleNames()); 
	menu_xml.load("http://www.saudeschenk.com.br/noticias.xml"); 
} else { 
	trace("Erro ao carregar o arquivo CSS."); 	
}
};
styles.load("eventos_style.css");

var menu_xml:XML = new XML();
menu_xml.ignoreWhite = true;
var nomeArray:Array = new Array();
var pagArray:Array = new Array();

function navMenu() {
	for (i=0; i<menu_xml.firstChild.childNodes.length; i++) {
 	nomeArray[i] = menu_xml.childNodes[0].childNodes[i].childNodes[0].firstChild;
 	pagArray[i] = menu_xml.childNodes[0].childNodes[i].childNodes[1].firstChild;
 	
		
		this.meNu_g.meNu.attachMovie("Links", "new_instance"+i, i);
		//this.attachMovie("Links", "new_instance"+i, i);
 	var navBar:Object = new Object();
 	navBar = this.meNu_g.meNu["new_instance"+i];
 	navBar.id = i;
 	var posY:Number = 0;
 	var posX:Number = 0;
		
//insere o nome no botão
 	navBar.nome_txt.text = nomeArray[i];
		navBar.nome_txt.autoSize = true;
		trace(navBar.nome_txt._height);
		
// marca o espacamento entre os bots


		
 	navBar._x = posX;
 	navBar._y = posY+i*33;
		
// quando o botão é clicado.........
 	navBar.onRollOver = function() {
			_root.meNu_g.gotoAndStop(1);
			mc_texto.texto.styleSheet = styles;
 	mc_texto.texto.htmlText = "<p class='titulo'>"+nomeArray[this.id]+"</p>
"+pagArray[this.id];

 	};
	}

}

menu_xml.onLoad = function() {
	navMenu();
};


Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala rapaz qual o valor que deu aqui?

trace(navBar.nome_txt._height);

 

Ele pegou um valor??? e depois você viu se mudou o valor da caixa.

 

Me diga os valores disso aqui tbm:

navBar._x = posX;

navBar._y = posY+i*33;

 

 

Abraços

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.