..:: MX Studio Fóruns ::..: Rolagem para News - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Rolagem para News Criação de um news em Flash, PHP e MySQL

#1 User is offline   Eduardo hayashi 

  • Group: Membros
  • Posts: 69
  • Joined: 13-October 05

Posted 13 October 2005 - 11:50 AM

Olá.


Estou com o seguinte problema:

Tenho um sistema de News em Flash. Ele chama um arquivo em php que consulta o MySQL e retorna as notícias para o Flash. Inicialmente o meu sistema comportava até 3 notícias mostradas na tela. Mas agora estou precisando colocar um scroll de rolagem no Flash. Ele tem um retângulo onde aparecem os primeiros 110 caracteres da notícia. Quando você clica no retângulo, ele chama uma imagem e a notícia inteira, que aparece em outro quadro.

A dúvida é:
Como eu faço o flash criar um retângulo desses, de pré-visualização, para cada registro que recebe do PHP?
Aí eu posso fazer um scroll de rolagem em eixo Y comum.
Ou tem algum outro jeito?


Arquivo carregar_noticias.php
QUOTE
include "conexao.php";

$query = mysql_query("select nw_id, nw_tit, nw_cont, nw_file from tab_news where nw_active=1 order by nw_date") or die("sem query");
$totquery = mysql_num_rows($query);

for ($r=1;$fetch = mysql_fetch_row($query);$r++){
$vtemp1 = "prenoticia" . $r;
$vtemp2 = "noticia" . $r;
$vtemp3 = "arquivo" . $r;
$prenoticia = $fetch[1];
$noticia = $fetch[2];
$arquivo = $fetch[3];

//Pega os primeiros 110 caracteres da notícia pra pré-visualizacao
//Testa pra ver se a pré-visualização não vai cortar uma palavra ao meio.
for ($t=110;empty($end);$t--){
$subtes = substr($noticia, $t, 1);
if ($subtes == " "){
  $sub = substr($noticia, 0, $t);
  $end = true;
}//end if
}//end for
unset($end);//destrói a variável $end
$sub .= " ...";//acrescenta reticências à prenoticia

print "
&$vtemp1=$sub
&$vtemp2=$noticia
&$vtemp3=$arquivo
";

}//end for


Grato
Eduardo Hayashi
0

#2 User is offline   hufersil 

  • Group: Moderadores
  • Posts: 1265
  • Joined: 15-January 04

Posted 13 October 2005 - 02:25 PM

bom, eu sei que vc está acostumado assim, mas seria melhor que vc convertesse esses dados do PHP em XML para trabalhar de uma forma mais fácil no flash...

PHP
<?php
include "conexao.php";

$query = mysql_query("select nw_id, nw_tit, nw_cont, nw_file from tab_news where nw_active=1 order by nw_date") or die("sem query");
$totquery = mysql_num_rows($query);

$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<noticias>';
for (
$r=1;$fetch = mysql_fetch_row($query);$r++){
    $vtemp1 = "prenoticia" . $r;
    $vtemp2 = "noticia" . $r;
    $vtemp3 = "arquivo" . $r;
    $prenoticia = $fetch[1];
    $noticia = $fetch[2];
    $arquivo = $fetch[3];
    
    
//Pega os primeiros 110 caracteres da notícia pra pré-visualizacao
    //Testa pra ver se a pré-visualização não vai cortar uma palavra ao meio.
    for ($t=110;empty($end);$t--){
        $subtes = substr($noticia, $t, 1);
        if ($subtes == " "){
            $sub = substr($noticia, 0, $t);
            $end = true;
        }//end if
    }//end for
    unset($end);//destrói a variável $end
    $sub .= " ...";//acrescenta reticências à prenoticia

    $xml .= '<noticia titulo="'.utf8_encode($noticia).'" arquivo="'.utf8_encode($arquivo).'">';
    $xml .= '<![CDATA['.utf8_encode($prenoticia).']]></noticia>';

}
//end for

$xml .= '</noticias>';
echo
$xml;
?>


e no seu flash:

ActionScript

// colocar no frame
var xDoc:XML = new XML();
xDoc.ignoreWhite = true;
xDoc.onLoad = function () {
      /* crie um objeto de modelo e coloque o nome de instancia dele como mc_noticia
      Dentro dele, coloque 2 campos dinamicos, com os seguintes nomes de instancia:
      - titulo
      - prenoticia
      */

      var node:XMLNode = this.firstChild.firstChild;
      
      for(var i:Number=0; i<this.firstChild.childNodes.length; i++) {
            var n:Number = getNextHighestDepth();
            var it:MovieClip = mc_noticia.duplicateMovieClip('item'+i, n);
            it._y += i*it._height; /* move para baixo */
            it.titulo.text = node.attributes.titulo;
            it.prenoticia.text = node.firstChild.toString();
            it.arquivo = node.attributes.arquivo;
            it.onRelease = function () {
                  /* funcoes quando o cara clicar. Para pegar o nome do arquivo, utilize
                  this.arquivo */

                  trace(this.arquivo);
            }
            node = node.nextSibling;
      }
      
}

var carrega:LoadVars = new LoadVars();
carrega.sendAndLoad("noticias.php", xDoc, "POST");


@braços e fique com Deus!
0

#3 User is offline   Eduardo hayashi 

  • Group: Membros
  • Posts: 69
  • Joined: 13-October 05

Posted 14 October 2005 - 11:03 AM

Não consigo fazer funcionar esse código......

Dá o seguinte erro:
A página XML não pode ser exibida

Não é possível exibir a entrada XML usando a folha de estilos XSL. Corrija o erro e clique no botão Atualizar ou tente novamente mais tarde.

Está faltando um espaço em branco necessário. Erro ao processar o recurso no arquivo "../noticias.php". Linha 20, posição 8

-------------------------------------------------

O conteúdo que estou puxando do MySQL tem aspas ("") no meio do texto. Acredito que seja isso que dê conflito. Eu tirei as aspas dos textos e aí funcionou o XML. Mas tem que haver algum jeito de permitir as aspas..... não dá pra simplesmente proibir o usuário de colocar aspas no seu texto.

O XML funcionou no browser, mas não estou conseguindo fazê-lo ser mostrado dentro do Flash usando esse ActionScript.....

Eu devo colocar esse código na timeline, no mesmo frame onde se encontra o MC noticias, certo??

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)