Ir para conteúdo

POWERED BY:

Arquivado

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

Ricardolagg

[Resolvido] Textos e Imagens - TEXTAREA

Recommended Posts

Bom dia pessoal, estou criando um blog no Flash, através de um tutorial que até encontrei aqui no forúm, mas como ele vai lidar com MySQL tb, no caso as images, textos, etc, serão dinâmicos, preciso que ele calcule o espaço de cada um automaticamente, sem aqueles <br><br><br><br><br>, porém não estou conseguindo fazer toda vez que retiro os <br>s , as imagens vão uma por cima da outra, tem algum modo do text area colocar textos e imagens uma abaixo da outro interpretando como o HTMLL ?

 

---------------------- ARQUIVO PHP ----------------------

<?php

$conteudo = '<?xml version="1.0" encoding="UTF-8"?>';

$conteudo .= '<post>

<![CDATA[<b>Esse post possui imagem no formato jpg</b><br>

<img src="kula.jpg" width="200" height="163">

<br><br> E também arquivos .swf dentro do post

<img src="popotamo.swf" width="212" height="222"><br><br><br><br><br><br><br><br><br><br><br><br>

<br><br><br>

<font color="#ff0000">Além de ter formatação no texto</font>

]]>

</post>';

echo $conteudo;

?>

 

----------------------- ACTION SCRIPT -----------------------

 

 

//ANTES DISSO TEM MAIS ALGUNS CODIGOS DE TITULO, MAS RETIREI PARA N POSTAR UM MONTE DE COISA

//Função loadPost, é responsável por receber a url do XML do post selecionado e exibir o conteúdo do mesmo.

function loadPost(url:String):Void{

//Instanciando um objeto da classe XMl.

var postAt:XML = new XML();

//Atribua a propriedade ignoreWhite, o valor de true.

postAt.ignoreWhite = true;

//Execute o método load da classe XML, passando como argumento do método, o argumento url recebido na função

postAt.load(url);

//O evento onLoad da classe XML é invocado quando os dados do xml são carregados, vamos atribuir ao evento a função getPost.

postAt.onLoad = getPost;

};

//Função getPost, é responsável por receber os dados contidos no XML, e preencher o componente TextArea "txtPost" (sem aspas)

function getPost(ok:Boolean):Void{

//Se os dados foram carregados com sucesso

if(ok){

//Exibindo o titulo e data do post

txtPost.text = '<b>' + tit_list.selectedItem.label + " - " + tit_list.selectedItem.data + '</b><br><br>'

//Exibindo agora o conteúdo do post, recebido do XML

txtPost.text += this.firstChild.childNodes[0].nodeValue

}else{

//Exibindo uma mensagem de erro para caso o post não seja carregado corretamente.

txtPost.text = 'Erro ao carregar o post';

};

};

 

//Função loadAllPosts é responsável por carregar todos os posts exitentes.

function loadAllPosts():Void{

//Array dados irá receber o valor da propriedade dataProvider do componente ListBox "tit_list" (sem aspas).

var dados:Array = tit_list.dataProvider;

//O loop for abaixo, irá criar objetos XML para quantos posts existirem e carregar o XML do post correspondete.

for(var i:Number = 0,len:Number = dados.length; i<len; i++){

var xmlP = this['xPost'+i];

//Instanciando um objeto da classe XML.

xmlP = new XML();

//Atribua a propriedade ignoreWhite, o valor de true.

xmlP.ignoreWhite = true;

//Crie a variável id em cada objeto xml

xmlP.id = i;

//Execute o método load da classe XML, passando como argumento o valor da propriedade url do array dados

xmlP.load(dados.url);

//O evento onLoad da classe XML é invocado quando os dados do xml são carregados.

xmlP.onLoad = function(){

//Se a variável id for igual a 0, limpe o componente TextArea "txtPost" (sem aspas)

if(this.id==0)txtPost.text = '';

//Exibindo o titulo e data do post

txtPost.text += '<b>' + dados[this.id].label + " - " +dados[this.id].data + '</b><br><br>'

//Exibindo agora o conteúdo do post, recebido do XML

txtPost.text += this.firstChild.childNodes[0].nodeValue;

//Exibindo em cada post uma mensagem (fim do post);

txtPost.text += '<br>############ FIM DO POST ############<br><br>';

};

};

};

//O evento clickHandler, será invocado quando o componente button

tudo_btn.clickHandler = function():Void{

//Exibindo uma mensagem enquanto os posts estão sendo carregado.

txtPost.text = 'Carregando todos os posts...';

//Executando a função loadAllPosts, para exibir todos os posts.

loadAllPosts();

//loadAllPosts, define..

};

 

//Execute a função loadTitulos, e passe como argumento a url do XML que contém os titulos dos posts.

loadTitulos('xml_dados.php');

 

 

OBRIGADO PESSOAL !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi,

Tem um jeito... na tag da imagem você coloca um 'id'':

 

<img src="kula.jpg" width="200" height="163" id="pic1" />

No Flash, e no string recebido você isola a imagem (use IndexOf('/>'))...

Ai você acrescenta os "<br>" q foram calculados a partir do 'height' da imagem (textohtml.pic1._height)

e atraves do 'size' da letra utilizada nesse campo-de-texto:

 

Estas operacoes so podem acontecer quando o string estiver carregado no campo-de-texto - use onChanged:

 

textohtml.onChanged = function(){})

....

nr = Math.ceil(this.pic1._height/12);

....

}

 

Nao sei se deu para entender, mas o principio ta ai.

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

boa tarde !!!

Obrigado pela resposta, deu p enteder sim, porém como sou iniciante no XML deu pau na minha mente, não sei muito bem como aplicar o que você relatou, a idéia é dar um <br> para tal numero de pixels que a imagem tiver, só que que deu tilt na minha mente mesmo. .. hehe

Valeu!!!

 

PS.: caso quiser me ajudar um pouco mais especificamente agradeço ...

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.