Jump to content
Fórum Script Brasil
  • 0

Flash + Bd


DeStiLaDo
 Share

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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.... [email protected] / mas infelizmente não estou disponível muito tempo nele... mesmo assim é mais facil me achar.

:blink:

Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.9k
    • Total Posts
      648.8k
×
×
  • Create New...