..:: MX Studio Fóruns ::..: ComboBox com problema - ..:: 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

ComboBox com problema mc chamado dentro de outro mc

#1 User is offline   fajota 

  • Group: Membros
  • Posts: 62
  • Joined: 25-August 06

Posted 15 April 2008 - 03:42 PM

E ai amigos tudo bem?

Vejam se podem me ajudar.

Acessem esse link para ver o site que estou criando.

Quando clicarem em Eventos e Contatos. Voces verao que o ComboBox não está funcionado.

Os mcs eventos.swf e contatos.swf, estao sendo chamados dentro do mc vazio mcConteudo pelo botao criado via xml, que fiz do tutorial que tem no site do mxstudio, sobre menu xml. Esse é o tutorial do menu http://www.mxstudio.com.br/flash/criando_m...utilizando_xml/

Quando eu testo os swfs eventos e contatos, fora do arquivo que os chamam, o comboBox funciona normalmente.

O codigo dos eventos.swf é esse:
/*----------------------------------------------------------------
variable declarations
----------------------------------------------------------------*/
var My_SlideNumber;
var My_TotalSlides;
var My_ParentNode;
var My_SelectedCategory;
var PhotoXml = new XML();

/*----------------------------------------------------------------
instantiate variables
----------------------------------------------------------------*/
PhotoXml.ignoreWhite = true;

/*----------------------------------------------------------------
functions
----------------------------------------------------------------*/
function loadPhotoXml(filename)
{
PhotoXml.load(filename);
PhotoXml.onLoad = function (success)
{
if (success)
{
My_ParentNode = this.firstChild;
Next_btn.enabled = false;
Previous_btn.enabled = false;
loadCombo();
}
}
}

function showPhoto(CategoryName, PhotoNum)
{
var _l2 = 0;
while (_l2 < My_ParentNode.childNodes.length)
{
if (My_ParentNode.childNodes[_l2].attributes.name == CategoryName)
{
var _l3 = My_ParentNode.childNodes[_l2];
My_TotalSlides = _l3.childNodes.length;
}
++_l2;
}
if (My_TotalSlides - 1 == PhotoNum)
{
Next_btn.enabled = false;
}
else
{
Next_btn.enabled = true;
}
if (PhotoNum == 0)
{
Previous_btn.enabled = false;
}
else
{
Previous_btn.enabled = true;
}
var _l6 = _l3.childNodes[PhotoNum].attributes.filename;
var _l7 = _l3.childNodes[PhotoNum].attributes.heading;
empty_mc.loadMovie("images/eventos/" + _l6);
caption_text.text = _l7;
empty_mc._alpha = 50;
this.onEnterFrame = function ()
{
if (empty_mc._alpha < 100)
{
empty_mc._alpha = empty_mc._alpha + 3;
}
}
}

function loadCombo()
{
gallery_combo.addItem("-- select --");
var _l2 = 0;
while (_l2 < My_ParentNode.childNodes.length)
{
gallery_combo.addItem(My_ParentNode.childNodes[_l2].attributes.name);
++_l2;
}
var _l3 = new Object();
_l3.change = function (evt)
{
if (evt.target.selectedItem.label != "-- select --")
{
_root.empty_mc1._alpha = 0;
My_SlideNumber = 0;
My_SelectedCategory = evt.target.selectedItem.label;
showPhoto(My_SelectedCategory, My_SlideNumber);
}
else
{
empty_mc.unloadMovie();
caption_text.text = "";
Next_btn.enabled = false;
Previous_btn.enabled = false;
}
}
gallery_combo.addEventListener("change", _l3);
}

/*----------------------------------------------------------------
run immediately
----------------------------------------------------------------*/
loadPhotoXml("xml/eventos.xml");


E codigo do contatos.swf é esse:

/*----------------------------------------------------------------
variable declarations
----------------------------------------------------------------*/
var var_status:String = "";

/*----------------------------------------------------------------
instantiate variables
----------------------------------------------------------------*/
var_nome = "";
var_email = "";
var_mensagem = "";
var_cidade = "";
var_estados = "";
var_resposta = "";

/*----------------------------------------------------------------
functions
----------------------------------------------------------------*/
function enviar() // criando função que valida e envia os dados informados pelo usuário
{
var_estados = estados_cb.value; // pega o valor escolhido no select "Estado" e repassa à variável "var_estados"

if (var_nome.length <= 2)
{
var_status = "Por favor, preencha seu nome corretamente";
// se a variável tiver menos que dois digitos, alerte o usuário
}
else if (var_email.length <= 8 or var_email.indexOf("@", 0) == -1 or var_email.indexOf(".", 0) == -1)
{
var_status = "Por favor, preencha seu email corretamente";
// se a variável tiver menos que dois digitos, alerte o usuário.
// se não existir o caracter "@", nem o "." no meio do e-mail, alerte o usuário.
}
else if (var_cidade.length <= 4)
{
var_status = "Por favor, preencha sua cidade corretamente";
// se a variável tiver menos que dois digitos, alerte o usuário.
}
else if (var_estados == "")
{
var_status = "Por favor, escolha seu estado na lista";
// se o usuário não escolher nenhum estado na lista, alerte-o.
}
else if (var_mensagem.length <= 1)
{
var_status = "Por favor, preencha a mensagem corretamente";
// se a variável tiver menos que dois digitos, alerte o usuário.
}
// se os dados informados passarem pela validação, executar as linhas abaixo:
else
{
var envia = new LoadVars(); // cria um objeto para enviar os dados
var carrega = new LoadVars(); // cria um objeto para receber os dados
envia.nome = nome_txt.text; // pegar os dados da variável var_nome
envia.email = email_txt.text; // pegar os dados da variável var_email
envia.cidade = cidade_txt.text; // pegar os dados da variável var_cidade
envia.mensagem = mensagem_txt.text; // pegar os dados da variável var_mensagem
envia.sendAndLoad("http://www.seusite.com.br/email.asp", carrega, "POST"); // envia a mensagem através da função "sendAndLoad".
nextScene();
}
}

/*----------------------------------------------------------------
event handlers
----------------------------------------------------------------*/
enviar_btn.onRollOver = function():Void
{
this.onEnterFrame = function()
{
this.nextFrame();
if (this._currentframe == this._totalframes)
{
delete this.onEnterFrame;
}
}
}

enviar_btn.onRollOut = function():Void
{
this.onEnterFrame = function()
{
this.prevFrame();
if (this._currentframe == 1)
{
delete this.onEnterFrame;
}
}
}

enviar_btn.onRelease = function():Void
{
enviar();
}

apagar_btn.onRollOver = function():Void
{
this.onEnterFrame = function()
{
this.nextFrame();
if (this._currentframe == this._totalframes)
{
delete this.onEnterFrame;
}
}
}

apagar_btn.onRollOut = function():Void
{
this.onEnterFrame = function()
{
this.prevFrame();
if (this._currentframe == 1)
{
delete this.onEnterFrame;
}
}
}

apagar_btn.onRelease = function():Void
{
nome_txt.text = "";
email_txt.text = "";
cidade_txt.text = "";
estados_cb.label = "" ;
mensagem_txt.text = "";
}

// atribuindo a ordem de foco dos campos quando a tecla "Tab" for pressionada
nome_txt.tabIndex = 1;
email_txt.tabIndex = 2;
cidade_txt.tabIndex = 3;
estados_cb.tabIndex = 4;
mensagem_txt.tabIndex = 5;

/*----------------------------------------------------------------
run immediately
----------------------------------------------------------------*/
0

#2 User is offline   ubi_rj 

  • Group: Moderador Global
  • Posts: 2920
  • Joined: 29-June 07

Posted 15 April 2008 - 08:53 PM

Em cada swf que será importado coloque na primeira linha de suas actions o seguinte código:

CÓDIGO
this._lockroot = true;


Da uma olhada nisso: http://www.mxstudio.com.br/forum/index.php...c=58660&hl=

Abração
0

#3 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 16 April 2008 - 09:55 AM

Para resolver esse problema com os ComboBox, você tem que ter o ComboBox no seu arquivo principal, não precisa ter ele no palco, somente na biblioteca.

Faz assim, no seu arquivo principal (que carrega os outros swfs) arraste um ComboBox para seu palco e depois delete ele, deixando apenas no palco. Quando testar seu arquivo ele vai funcionar.

[]s
0

#4 User is offline   fajota 

  • Group: Membros
  • Posts: 62
  • Joined: 25-August 06

Posted 22 April 2008 - 05:44 PM

E ai Ubi e Natan. blz?

Obrigado pelas dicas. As duas formas funcionaram perfeitamente.

Abraço
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)