Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SeaD

Menu em XML

Recommended Posts

Pessoal eu fiz um menu usando um tutorial que achei na net...

 

Ele esta funcionando perfeitamente so que eu queria fazer com que ao passar do mouse o fundo fizesse igual ao exemplo que tem nesse site.

 

http://www.ultrashock.com/#/asset/39586/ho...l-xml-menu.html

 

O AS do meu menu esta asim

 

GenerateMenu = function(container, name, x, y, depth, node_xml, horz) {
	var curr_node;
	var curr_item;
	var curr_menu = container.createEmptyMovieClip(name, depth);
	
	for (var i=0; i<node_xml.childNodes.length; i++) {
		curr_item = curr_menu.attachMovie("menuitem","item"+i+"_mc", i);
		if (horz == 1)
		{
			curr_item._y = y;
			curr_item._x = x + i*curr_item._width*1.5;
		}
		else
		{
			curr_item._x = x;
			curr_item._y = y + i*curr_item._height;
		}

		curr_item.trackAsMenu = true;
		
		curr_node = node_xml.childNodes[i];
		curr_item.action = curr_node.attributes.action;
		curr_item.variables = curr_node.attributes.variables;
		curr_item.name.text = curr_node.attributes.name;
		
		if (node_xml.childNodes[i].nodeName == "menu"){
			curr_item.node_xml = curr_node;
					
			curr_item.onRollOver = curr_item.onDragOver = function(){
				var x = this._x;
				if (horz > 1)
					x = this._x + this._width;
				var y = this._y + this._height;
				if (horz > 1)
					y = this._y;
				GenerateMenu(curr_menu, "mainmenu_mc", x, y, 1000, this.node_xml, 2);
				
				this.attachMovie("menuover", "menuover", 500);
				this.menuover.menuoverName.text = this.name.text;
			};
		}else{ // nodeName == "item"			
			curr_item.arrow._visible = false;
			curr_item.onRollOver = curr_item.onDragOver = function(){
				curr_menu.submenu_mc.removeMovieClip();
				this.attachMovie("menuover", "menuover", 500);
				this.menuover.menuoverName.text = this.name.text;

			};
		}
		
		curr_item.onRollOut = curr_item.onDragOut = function(){
			var col = new Color(this.background);
			col.setTransform({ra:100,rb:0,ga:100,gb:0,ba:100,bb:0});
			this.menuover.removeMovieClip();
		};
		
		curr_item.onRelease = function(){
			Actions[this.action](this.variables);
			CloseSubmenus();
		};
	}
};

CreateMainMenu = function(x, y, depth, menu_xml){
	GenerateMenu(this, "mainmenu_mc", x, y, depth, menu_xml.firstChild, 1);

	mainmenu_mc.onMouseUp = function(){
		if (mainmenu_mc.submenu_mc && !mainmenu_mc.hitTest(_root._xmouse, _root._ymouse, true)){
			CloseSubmenus();
		}
	};
};


CloseSubmenus = function(){
	mainmenu_mc.submenu_mc.removeMovieClip();
};


Actions = Object();
Actions.gotoURL = function(urlVar){
	getURL(urlVar, "_blank");
};
Actions.message = function(msg){
	message_txt.text = msg;
};
Actions.newMenu = function(menuxml){
	menu_xml.load(menuxml);
};


menu_xml = new XML();
menu_xml.ignoreWhite = true;
menu_xml.onLoad = function(ok){

	if (ok){
		CreateMainMenu(10, 10, 0, this);
		message_txt.text = "message area";
	}else{
		message_txt.text = "error:  XML not successfully loaded";
	}
};

menu_xml.load("menu.xml");

Eu queria fazer exatamente igual ao do link...

 

Que quando a pessoa passar o mouse em cima vim uma "barrinha" de baixo pra cima e para no menu, e quando ela tirar a barrinha subir...

Ate agora so consegui fazer a "barrinha" vim de um lugar e parar no menu mas ela nao continua "subindo" qnd a pessoa tira o mouse...

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie um movie clip para servir de fundo (suponha que o nome desse movie clip seja fundo1 ) coloque 2 frames com o action script stop(); no frame um coloque um botao invisivel cobrindo toda a tela e com o codigo

 

on (rollOver) {

nextFrame();

}

 

 

no segundo frame do movie clip fundo1 crie um outro movie clip com o fundo que você quiser para colocar no frame 2 do movie clip fundo1

 

lembrando que você deve colocar o fundo no movie clip que é para criar no frame2 do fundo1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.