Jump to content


Photo

Flash Com Xml E Css Não Funciona!


  • Faça o login para participar
3 replies to this topic

#1 erico.scorpioni

erico.scorpioni

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino
  • Localidade:Florianópolis
  • Interesses:Design Gráfico e Flash!

Posted 27/06/2007, 12:14

Dae galera! Estou criando uma página de notícias em flash. Um sistema PHP irá alterar o XML e o flash buscará esse arquivo para listar as notícias.

É bem simples, existem 3 campos no XML, Titulo da Noticia (Name) + Corpo da Notícia (Description) + Autor (Por)
noticias.xml
<?xml version="1.0" ?><Books>	<Book> 		<Name> Titulo da Notícia 1 </Name>		<Description> Corpo da Notícia 1 </Description>		<Por>Érico Scorpioni 26 de Junho de 2007 20:42		</Por>		</Book>		<Book> 		<Name> Título da Notícia 2 </Name>		<Description> Corpo da Notícia 2 </Description>		<Por>Érico Scorpioni 26 de Junho de 2007 09:22		</Por>		</Book></Books>

e meu AS é:
varXML = new XML();varXML.onLoad = converterXML;varXML.load("noticias.xml");texto.textos = "";function converterXML(){        TagPrincipal = new XML;        TagElemento = new XML;        books = new Array;        elemento = new Array;        TagPrincipal = this.firstChild.nextSibling;        nodo = TagPrincipal.nodeName.toUpperCase() ;        books = TagPrincipal.childNodes;        for ( i = 0 ; i < books.length ; i++){                elemento = books[i].childNodes;                for(j=0;j<=elemento.length;j++) {                        Tagelemento = elemento[j];                        Tipoelemento = Tagelemento.nodeName.toLowerCase();                        if(Tipoelemento == "name"){                                texto.textos = texto.textos + Tagelemento.firstChild.nodeValue + "<br>" ;                        } else {                                if(Tipoelemento == "description"){                                        texto.textos = texto.textos + Tagelemento.firstChild.nodeValue + "<br>";								} else {                                		if(Tipoelemento == "por"){                                        		texto.textos = texto.textos + "Por: " + Tagelemento.firstChild.nodeValue + "<br>";                               			}								}                        }                }        }}

Quando eu linkei esse CSS (noticias.css)
Name{color: #000000;font-size: 11pt;}Description{color: #666666;font-size: 10pt;}Por{color: #006699;font-size: 8pt;}
colocando essa tag no XML
<?xml-stylesheet type="text/css" href="noticias.css"?>
Ele nao funcionava mais!


O Flash não aceita XML com CSS?
Existe uma maneira de eu alterar a cor e o tamanho da fonte naquele AS que chama o XML?


Desde já obrigado!
Érico Scorpioni
Florianópolis - SC
erico.scorpioni@globo.com

#2 Pedropauloalmeida

Pedropauloalmeida

    Fale ao motorista somente o indispensável

  • Usuários
  • 1376 posts
  • Sexo:Masculino
  • Localidade:Santo André SP

Posted 27/06/2007, 16:34

O flash não vai renderizar (até onde eu sei) o css pelo xml.

Vc tem que usar um objeto CSS no flash (leia-se carregar um css externo pro flash) e usar, ou no texto do xml as tags <span class='titulo'>Este é um título</span> ou fazer isso no flash como...

meuTexto_txt.htmlTetx = "<span class='titulo'>" + firstChild.childNodes[0].firstChild.nodeValue + "</span>";


Procure por CSS e CDATA aqui no fórum que tem bastante posts do assunto. Se vc não achar o que quer, volte a postar que tento te ajudar.


Abraços.

pp

#3 erico.scorpioni

erico.scorpioni

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino
  • Localidade:Florianópolis
  • Interesses:Design Gráfico e Flash!

Posted 28/06/2007, 12:56

Na ajuda do flash mostra esse código
[codebox]var styles:TextField.StyleSheet = new TextField.StyleSheet();
styles.onLoad = function(success:Boolean):Void {
if (success) {
trace(this.getStyleNames());
} else {
trace("Erro ao carregar o arquivo CSS.");
}
};
styles.load("noticias.css");[/codebox]

Mas não adianta... coloquei no frame 1 no msm local onde está a caixa de texto dinâmica q chama o XML e nada!

e qnd eu coloco a tag <span> aparece Null no flash! muita complicação por uma simples renderização! mas é de extrema importância!

é só meter um <![CDATA[ ]]> no XML q resolve! daí da pra colocar as tags html

Edição feita por: erico.scorpioni, 27/06/2007, 20:14.

Érico Scorpioni
Florianópolis - SC
erico.scorpioni@globo.com

#4 Pedropauloalmeida

Pedropauloalmeida

    Fale ao motorista somente o indispensável

  • Usuários
  • 1376 posts
  • Sexo:Masculino
  • Localidade:Santo André SP

Posted 28/06/2007, 14:06

Erico.


Não existe complicação. O uso do CSS é de extrema importância e facilita muito a manutenção dos flashs.

Com certeza ele ou não está econtrando o CSS ou tem um erro de precedência: o CSS carrega depois do XML. Se isso acontecer vc podrá ter erros.

Coloque a chamada pro XML no success do onLoad do CSS:

var styles:TextField.StyleSheet = new TextField.StyleSheet();
styles.onLoad = function(success:Boolean):Void {
	 if (success) {
		  trace(this.getStyleNames());
		  meuXML.load("algumXml.xml");
	 } else {
		  trace("Erro ao carregar o arquivo CSS.");
	 }
};
styles.load("noticias.css");

Espero que tenha ajudado.


Abraços.

pp




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq