1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Formulário no Flash

Discussão em 'Web Development' iniciada por friezens, 17 de Agosto de 2008. (Respostas: 4; Visualizações: 767)

  1. friezens

    friezens Power Member

    boa tarde!

    Eu tenho um formulário flash/php que costumo usar sem problemas mas descobri uma lacuna. Quando o uso dentro de um movieclip ou quando o chamo a partir de um loadmovie ele deixa de funcionar a 100%.

    O formulário tem duas acções associadas, um listener e um de formatação do texto,

    A de formatação do texto é:
    Código:
    //    --------------------
    //    TextField Styles
    //    --------------------
    normal_border = 0xCCCCCC
    select_border = 0x000000
    normal_background = 0xEEEEEE
    select_background = 0xDDDDDD
    normal_color = 0x999999
    select_color = 0x666666
    //    ---------------------
    //    apply the style
    //    to every textfield
    //    ---------------------
    function format_field(f)
    {
        for(var a in f)
        {
            f[a].border = true
            f[a].borderColor = normal_border
            f[a].background = true
            f[a].backgroundColor = normal_background
            f[a].textColor = normal_color
        }
    }
    format_field([Sobs,Sname,Semail,Ssubject,Smessage,Sminutos,Sfuma,Snumero]);
    
    //    ---------------------
    //    define style change 
    //    function for TXT
    //    ---------------------
    TextField.prototype.onSetFocus = function()
    {
        this.borderColor = select_border
        this.backgroundColor = select_background
        this.textColor = select_color
    }
    TextField.prototype.onKillFocus = function()
    {
        this.borderColor = normal_border
        this.backgroundColor = normal_background
        this.textColor = normal_color
    }
    //    set the starting focus selection
    Selection.setFocus(Sname);
    
    e a do listener é:
    Código:
    Snumero.restrict = "0-9";
    Smessage.restrict = "0-9";
    Sminutos.restrict = "0-9";
    Ssubject.restrict = "0-9,/";
    Sfuma.restrict = "a-z, ã";
    
    //    add the listener to the Key onj
    k = new Object();
    k.onKeyUp = function()
    {
        if(Sname.text != '' 
           && Semail.text != '' 
           && Ssubject.text != '' 
           && Smessage.text != ''
           && Sminutos.text != ''
           && Snumero.text != ''
           && Sfuma.text != ''
           )
        {
            //    enable btn
            sendMC.sendButton.enabled = true;
        } else {
            //    diable
            sendMC.sendButton.enabled = false;
        }
    }
    Key.addListener(k);
    
    //    set starting status
    //    for SEND button
    sendMC.sendButton.enabled = false;
    // stop on current frame
    stop();
    
    O problema é que quando uso o formulário dentro de um movieclip ou com loadmovie, as caixas de textos deixam de aparecer e dá a ideia de que ele deixa de assumir as definições descritas no código da formatação.

    O que estou a fazer mal??

    Obrigado
     
  2. fil79

    fil79 Power Member

    isso deve acontecer porque o flash associa as açcões como as caixas de texto estivessem no _root, o que não acontece...tens de instaciar o teu movieclip e depois direccionas para lá essas açcões.
     
  3. friezens

    friezens Power Member

    E como faço isso?!
     
  4. fil79

    fil79 Power Member

    por exemplo:

    depois de instaciares o teu movieclip (neste caso mc_form)

    substituis:

    if(Sname.text != ''
    && Semail.text != ''
    && Ssubject.text != ''
    && Smessage.text != ''
    && Sminutos.text != ''
    && Snumero.text != ''
    && Sfuma.text != ''
    )



    por:


    if(Sname.text != ''
    && mc_form.Semail.text != ''
    && mc_form.Ssubject.text != ''
    && mc_form.Smessage.text != ''
    ...........


    creio que deverá funcionar
     
  5. friezens

    friezens Power Member

    Continua a não funcionar.

    Mas eu tenho o código dentro do movieclip, ou seja o código está num frame dentro do tal movie clip, isso faz diferença?
     

Partilhar esta Página