Ir para conteúdo
Fórum Script Brasil
  • 0

Flash + Bd


DeStiLaDo

Pergunta

Gente;

Por exemplo: caso eu tenha 5 textos num BD e quero lista-los num filme flash...

até ai td bem...

mas e se no BD agora forem 6?

a pergunta é:

Como faço pro flash ser regerado para agora incluir + uma linha? ou mesmo + um movieclip?

Só quero saber onde obtenho um exemplo para estudos!

Vlw

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Primeiramente gostaria de saber como o flash esta pegando as informações do BD ... imagino que seja atravez de uma página dinâmica como php ou aspx... com loadVariables?

o resultado dessa pagina dinamica deve ser contado por exemplo:

&titulo1=Info1 do banco de dados&
&titulo2=Info2 do banco de dados&
&titulo3=Info3 do banco de dados&
&titulo4=Info4 do banco de dados&
&chk=EOF&
note o valor de chk=EOF para informar o flash do fim do arquivo. agora vamos carregar esses valores no flash atravéz de loadVariables dentro de uma array:
var titulos = new Array

l1 = Math.round(Math.random()*100000)
l2 = Math.round(Math.random()*100000)
    file = "pagina_dinâmica.aspx?l1=" + l1 + "&l2=" + l2; // arquivo asp ou php que lê o bd
    this.chk = ""
    this.loadVariables(file.toString())
    this.onEnterFrame = function() {
        if (this.chk != "EOF") {
            return;
        }
        if (this.chk == "EOF") {
            i = 1
            while(this["titulo" + i].length > 0){
                titulos[i-1] = this["titulo" + i] //armazena resultados na array
                i++
            }
            delete this.onEnterFrame;
                                                criaGrid(); // função para criar as linhas com resultado no flash;
        }
    }


Note que após o flash ler todo aquivo reconhece o final dele através dos chk=EOF , então armazena todos os valores encontrados na Array titulos, e executa a função criaGrid() que vai montar o resultado no flash Agora a função criaGrid(), esta bem simplificada, depois você adiciona o acabamento.
function criaGrid(){
    for(var i=0; i<titulos.length; i++) {
        this.createTextField("ballonText"+i,this.getNextHighestDepth(),10,20*i,400,20);
        this["ballonText"+i].text = titulos[i];
        this["ballonText"+i].selectable = false;
        fmtEmphasis = new TextFormat();
        fmtEmphasis.bold = true;
        fmtEmphasis.size = 11;
        fmtEmphasis.font = "Arial";
        fmtEmphasis.color = 0x000000;
        fmtEmphasis.align = "center"
        this["ballonText"+i].setTextFormat(fmtEmphasis)
    }
}

Espero que isso possa lhe ajudar, talvez com um numero de resultados maiores seja nessario elaborar uma barra de rolagem, mas se você esbarrar nesse problema... me avise e agente resolve...

:blink:

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, Anti-Puff!!!

Vlw a ajuda, funcionou!!!

me responder umas dúvidas?

- falando em performance:

devo aprender a mexer assim, importando essas variáveis de um ASP ou PHP, ou devo pensar em algo tipo o Flash Remoting? quais os ganhos que eu teria em fazer em ColdFusion? você é cobra nisso também? :)

-falando em facilidade de personalização:

da maneira que você me explicou eu tenho que por exemplo, criar movieclips padrões com o AS (no caso do teu ex.: ) dentro do mesmo, certo? e ai dpois dar um duplicatemovieclip? caso ainda tenham ocorrencias no meu BD? ond leio mais sobre isso? :blink:

- mais uminha:

neste teu eskema aqui, como eu faria pra puxar da biblioteca um clip chamado "bola" e repetilo conforme o nº de ocorrencias do banco?

VO PESQUISÁ! mas c puder me ajudar, vlw!

Vlw,

c não c importa, posso t add no MSN?

Não sou muito Xarope... :rolleyes: huehuehue

T+, E VLW MESMO A AJUDA ATÉ aqui!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Quando ao primeiro ponto de performance não há grande diferença em tempo de request das linguagens, porém o flash remoting exige mais processos do servidor por ficar aberto em stream, você deve se preocupar muito mais com o tipo de base de dados que usa e como cada linguagem trabalha com ela... as melhores performances são para MySQL e ORACLE (MySQL é gratuita)... já dizia o ditado que a melhor linguagem é a qual a gente sabe usar... eu particularmente uso o ASP.NET C# por conter amplas classes de framework e essas classes tem muita similaridade com programação de ActionScript 2.0 e 3.0 pelo fato de ser "framework" também do flash 8. Não sou fã de coldfusion pois não é estruturado com similaridade das programações WINDOWS... php é excelente... mas envolve conhecimentos de servidores linux e uma infinidade de tempo procurando por scripts de classes para simular o framework do windows e isso pode apresentar queda de performance.

Sobre o Script , ele é personalizável para quaisquer tipos de situação envolvendo arrays... e apartir de uma array você pode criar um MC para cada valor da array.

Para adaptar o script para criar e attachar itens da livraria, apenas altere a função criaGrid, mas vou re-escrever tudo com as alterações:

Mantendo o código de resposta:

&titulo1=Info1 do banco de dados&
&titulo2=Info2 do banco de dados&
&titulo3=Info3 do banco de dados&
&titulo4=Info4 do banco de dados&
&chk=EOF&
estou renomeando esse o arquivo que tem esse código para 1.txt , facilitando o teste local pois da mesma maneira que o flash lê um asp ou php ele lê um txt. e agora segue o código com a criação de fundo e attach de um MC no meu exemplo chamado de mail_MC inserindo também prototypes para dar acabamento.
var titulos = new Array

l1 = Math.round(Math.random()*100000)
l2 = Math.round(Math.random()*100000)
    file = "1.txt"//"pagina_dinâmica.aspx?l1=" + l1 + "&l2=" + l2; // arquivo asp ou php que lê o bd
    this.chk = ""
    this.loadVariables(file.toString())
    this.onEnterFrame = function() {
        if (this.chk != "EOF") {
            return;
        }
        if (this.chk == "EOF") {
            i = 1
            while(this["titulo" + i].length > 0){
                titulos[i-1] = this["titulo" + i] //armazena resultados na array
                i++
            }
            delete this.onEnterFrame;
             criaGrid(); // função para criar as linhas com resultado no flash;
        }
    }




MovieClip.prototype.rectangle = function(w, h, x, y) {
    this.moveTo(x, y);
    this.lineTo(x + w, y);
    this.lineTo(x + w, y + h);
    this.lineTo(x, y + h);
}
MovieClip.prototype.colorize = function(a,b,c,d,e,f,g,h){
my_color = new Color(this);
myColorTransform = new Object();
myColorTransform.ra = a
myColorTransform.rb = b
myColorTransform.ga = c
myColorTransform.gb = d
myColorTransform.ba = e
myColorTransform.bb = f
myColorTransform.aa = g
myColorTransform.ab = h
my_color.setTransform(myColorTransform);
}



function criaGrid(){
    for(var i=0; i<titulos.length; i++) {
                                var c = this.createEmptyMovieClip("table"+i,this.getNextHighestDepth())
        c.lineStyle(1, 0xFFFFFF, 100);
        c.beginFill(0x0099CC, 100);
        c.rectangle(400,20,10,0);
        c.endFill();
        c._y = 20*i
        c.attachMovie("email_MC","email_MC",8)
        c.createTextField("ballonText"+i,c.getNextHighestDepth(),10,2,400,20);
        c["ballonText"+i].text = titulos[i];
        table["ballonText"+i].selectable = false;
        fmtEmphasis = new TextFormat();
        fmtEmphasis.bold = true;
        fmtEmphasis.size = 11;
        fmtEmphasis.font = "Arial";
        fmtEmphasis.color = 0x000000;
        fmtEmphasis.align = "center"
           c["ballonText"+i].setTextFormat(fmtEmphasis)
        
        c.toc = titulos[i];
        c.onRelease = function()
        {
            trace(this.toc)
        }
        c.onRollOver = function()
        {
            this.colorize(90,0,100,0,90,0,100,0)
        }
        c.onRollOut = function()
        {
            this.colorize(100,0,100,0,100,0,100,0)
        }
    }
}


Eu fiz esse exemplo e coloquei para download para você ver e entender melhor

Download do Arquivo

Meu MSN.... antipuff@MSN.com / mas infelizmente não estou disponível muito tempo nele... mesmo assim é mais facil me achar.

:blink:

Link para o comentário
Compartilhar em outros sites

  • 0

VLW VLW VLW!!!

Vou destrinchá esse cod!

VLW VLW VLW

=======================================================

Bah velho!

você É COBRA!!!

você trabalha em alguma empresa ou é freelancer?

Sô quase um zero em AS, muito show essa maneira de trabalhar com objetos e dados!!!

Me abriu mtas possibilidades você me mostrar esses "segredinhos"...

você precisa ver o que to fazendo, vamu v c a gent c fala no MSN!

Abração!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...