Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
São Paulo, 06 de dezembro de 2007 - Quinta-feira - 11:00h
Caros e amados amigos.
Que a Paz e a Graça de Nosso Senhor JESUS CRISTO estejam com cada um de vocês.
Por favor, gentilmente solicito uma ajuda de um experiente, neste projeto que estou finalizando, sendo que para concluí-lo, preciso terminar o menu de acesso às páginas do site de uma empresa.
Segundo o cliente, ele desejava que o menu tivesse um sistema que, ao setar (onRollOver) um ítem, os subítens daquela opção surgissem, fazendo com que todo o menu sumisse, se a seta do mouse saísse (onRollOut) dos subítens, o menu anterior inteiro voltaria.
No início, eu mesmo estava achando uma escolha um tanto quanto estranha mas, como devemos satifazer o cliente, temos que respeitá-los e concretizar seus objetivos.
No entanto, na simulação, através de um código em ActionScript de um amigo, o cliente percebeu que o menu está meio confuso, sendo assim, ele sugeriu que, ao invés de setar, ou tirar a seta do mouse das opções do menu, (onRollOver e onRollOut), ele sugere que, quando colocar a seta do mouse em uma das opções, nada acontece, até que seja dado um clique (onRelease) para que os subítens apareçam, mesmo que a seta do mouse esteja fora, para retornar ao menu anterior, basta dar novamente um clique na opção clicada para que seus subítens desapareçam, retornando o menu em seu estado normal.
Estou usando o seguinte código para que o menu funcione, lembrando que ele carrega um xml.
function fnSomeOutros(tg) {
for (var i:Number = 1; i <= 100; i++)
{
tg._parent["btn" + i + "_mc"]._visible = false;
}
tg._visible = true;
}
_global.fnAparecer = function(tg) {
if (!tg.hitTest(_root._xmouse, _root._ymouse, 1))
{
for (var i:Number = 1; i <= 100; i++)
{
menu_mc["btn" + i + "_mc"]._visible = true;
menu_mc["btn" + i + "_mc"].subMenu_mc.removeMovieClip();
menu_mc["btn" + i + "_mc"].subMenu_mc.unloadMovie();
}
}
};
function fnSurgeOutros() {
for (var i:Number = 1; i <= 100; i++)
{
menu_mc["btn" + i + "_mc"]._visible = true;
menu_mc["btn" + i + "_mc"].subMenu_mc.removeMovieClip();
menu_mc["btn" + i + "_mc"].subMenu_mc.unloadMovie();
}
}
_this = this;
_global.fnVoltaMenu = function(area:MovieClip) {
if (!area.hitTest(_root._xmouse, _root._ymouse, 1))
{
fnAparecer(area);
}
};
var _xml:XML = new XML();
_xml.ignoreWhite = true;
_xml.onLoad = function() {
var no_principal = this.firstChild;
var qtd_itens = no_principal.childNodes.length;
hit.useHandCursor = false;
hit.onRollOver = function() {
for (var i:Number = 1; i <= 100; i++)
{
menu_mc["btn" + i + "_mc"]._visible = true;
menu_mc["btn" + i + "_mc"].subMenu_mc.removeMovieClip();
menu_mc["btn" + i + "_mc"].subMenu_mc.unloadMovie();
}
};
for (var i:Number = 1; i <= qtd_itens; i++)
{
var textos = no_principal.childNodes[i - 1].childNodes[0];
var links = no_principal.childNodes[i - 1].childNodes[1].firstChild;
var espaco:Number = 1;
menu_mc.attachMovie("botao", "btn" + i + "_mc", (-i));
menu_mc["btn" + i + "_mc"]._y = (menu_mc["btn" + (i - 1) + "_mc"]._y + menu_mc["btn" + (i - 1) + "_mc"]._height) + espaco;
menu_mc["btn" + i + "_mc"].texto_txt.html = true;
menu_mc["btn" + i + "_mc"].texto_txt.htmlText = textos;
menu_mc["btn" + i + "_mc"]._links = links;
/**/
menu_mc["btn" + i + "_mc"]._filhos = no_principal.childNodes[i - 1].childNodes[2].childNodes;
menu_mc["btn" + i + "_mc"].fundo_mc.onRollOver = function() {
if (this._parent._filhos != undefined)
{
itens = this._parent._filhos;
total_itens = itens.length;
fnRemoveSubMenu(this._parent);
fnSubMenu(this._parent, total_itens, this._parent._filhos, this._parent._linksub);
fnSomeOutros(this._parent);
}
};
menu_mc["btn" + i + "_mc"].fundo_mc.onRollOut = function() {
fnVoltaMenu(this._parent._parent);
};
menu_mc["btn" + i + "_mc"].fundo_mc.onRelease = function() {
getURL(this._parent._links, "principal");
fnSurgeTodos(this._parent);
};
}
function fnRemoveSubMenu() {
for (var i:Number = 1; i <= 20; i++)
{
for (var k:Number = 1; k <= 10; k++)
{
menu_mc["btn" + i + "_mc"].subMenu_mc["sub" + k + "_mc"].removeMovieClip();
menu_mc["btn" + i + "_mc"].subMenu_mc["sub" + k + "_mc"].unloadMovie();
}
}
}
function fnSubMenu(tg:MovieClip, pai:Number, subs) {
/* LIMPA OS SUBITENS SE TIVER */
var no:XMLNode = subs;
for (var i:Number = 1; i <= pai; i++)
{
tg.subMenu_mc.attachMovie("subiten", "sub" + i + "_mc", tg.subMenu_mc.getNextHighestDepth());
tg.subMenu_mc["sub" + i + "_mc"].texto_txt.htmlText = subs[i - 1];
tg.subMenu_mc["sub" + i + "_mc"]._y = tg.subMenu_mc["sub" + (i - 1) + "_mc"]._y + tg.subMenu_mc["sub" + (i - 1) + "_mc"]._height;
tg.subMenu_mc["sub" + i + "_mc"]._linksub = subs[i - 1].attributes.link;
/* ROLLOVER DOS SUBITENS */
tg.subMenu_mc["sub" + i + "_mc"].fundo_mc.onRollOver = function() {
fnVoltaMenu(this._parent._parent._parent);
this.gotoAndStop(2);
};
tg.subMenu_mc["sub" + i + "_mc"].fundo_mc.onRollOut = function() {
fnVoltaMenu(this._parent._parent._parent);
this.gotoAndStop(1);
};
tg.subMenu_mc["sub" + i + "_mc"].fundo_mc.onRelease = function() {
/* RELEASE DOS SUB ITENS */
getURL(this._parent._linksub, "principal");
};
}
}
};
_xml.load("menu.xml");
Por favor, o que devo fazer para incrementar este código para que o menu funcione adequadamente ?
Muito obrigado, e que DEUS abençoe a todos.
Carregando comentários...