Ir para conteúdo

POWERED BY:

Arquivado

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

andretlima

Menu xml com link para frame

Recommended Posts

Bom dia galera, to com um duvida se puderem me ajudar... é o seguinte

 

tenho o código abaixo no meu flash que gera um menu puxando de um xml. gostaria de saber se é possivel e como fazer.. com que no xml eu declare para cada menu e submenu um frame... e quando ele gerar e eu clicar no meu ele pule para frame declarado no xml.. é possivel..???? o menu xml ele gera normal.. s[o preciso saber como fazer para ele pegar o frame do xml e executar.

 

segue abaixo o código flash:

//import classes and packages
import mx.transitions.easing.*;
import gs.TweenMax;
import com.greensock.*;
stop();


//Criar funcão dos bts do menu
function addButtons() {
	pushOverY = 0;
	for (i=0; i<totalButtons; i++) {
		menu.attachMovie("rectangle","rectangle",-1,{_x:0, _y:rY});
		btn = menu.attachMovie("button", "btn"+i, i, {_x:0, _y:pushOverY, id:i});
		btn.initialY = btn._y;
		btn.textMC.t.autoSize = "left";
		btn.textMC.t.text = obj.buttons[i].attributes.title;
		btn.textMC.t.textColor = iC;
		pushOverY += 27;

		//set events for this button
		setBtnEvents(btn);

		//add submenu items
		pushOverX = 0;
		btn.totalSubItems = obj.buttons[i].childNodes.length;
		for (j=0; j<btn.totalSubItems; j++) {
			subItem = btn.subMenu.attachMovie("subItem", "subItem"+j, j, {_x:pushOverX, _y:0, id:j});
			subItem.t.autoSize = "left";
			subItem.t.text = obj.buttons[i].childNodes[j].attributes.title;
			subItem.t.textColor = siC;
			pushOverX += subItem._width+10;
		}
	}
	Mouse.addListener(mouseListener);

}

//create function for buttons events
function setBtnEvents(btn:MovieClip) {
	
	btn.back.onRollOver = function() {
		overBtn = this._parent;
		if(this != pressedBtn){
			if(pressedBtn != undefined){
				tweenBtn(pressedBtn,100,iC,32,.8);
			}
			tweenBtn(this,140,iROC,75,.8);
			tweenRectangle(this._parent.initialY,.8);
		}
	};
	
	btn.back.onRollOut = function() {
		if(this != pressedBtn){
			if(pressedBtn != undefined){
				tweenBtn(pressedBtn,160,iROC,90,.8);
				tweenRectangle(pressedBtn._parent.initialY,.8);
			}else{
				tweenRectangle(rY,.8);
			}
			tweenBtn(this,100,iC,32,.8);
		}
	};
	
	btn.back.onPress = function() {
		//Retirar objeto depois do clique
		tweenRectangle(rY,.8);
		tweenBtn(this,100,iC,32,.8);

		//pressedBtn = this;
		
		
		
		//if is not pressed over subMenu then select the first subitem
		if(!pressedBtn._parent.subMenu.hitTest(_xmouse,_ymouse)){
			var cl:Color = new Color(pressedSubItem);
			cl.setRGB(siC);			
			pressedSubItem = pressedBtn._parent.subMenu["subItem"+0];
			
			var cl:Color = new Color(pressedSubItem);
			cl.setRGB(siROC);
		
			//ADD HERE CUSTOM FUNCTION
		}
		
	}
	
}

//create tweens with TweenMax
function tweenBtn(mc:MovieClip,textScale:Number,textTint:Number,backHeight:Number,sec:Number){
	mc.lastHeight = mc._height;
	TweenMax.to(mc._parent.textMC,sec,{_xscale:textScale, _yscale:textScale, tint:textTint, ease:Strong.easeOut});
	TweenMax.to(mc,sec,{_height:backHeight, ease:Strong.easeOut, onUpdate:moveButtons, onUpdateParams:[mc]});
}

function tweenRectangle(newY:Number,sec:Number){
	TweenMax.to(menu.rectangle,sec,{_y:newY, ease:Strong.easeOut});
}

function moveButtons(btn:MovieClip) {
	btn.currentHeight = btn._height;
	for (i=btn._parent.id+1; i<totalButtons; i++) {
		menu["btn"+i]._y += btn.currentHeight-btn.lastHeight;
	}
	btn.lastHeight = btn._height;
}

var rY = 240; //rectangle initial y

var iC:Number = new Number();//item color
var iROC:Number = new Number();//iem rollover color
var siC:Number = new Number();//subitem color
var siROC:Number = new Number();//subitem rollover color

var totalButtons:Number = new Number();

var overBtn:MovieClip = new MovieClip();

var pressedBtn:MovieClip = undefined;
var pressedSubItem:MovieClip = new MovieClip();

var mouseListener:Object = new Object();


//create subItems events
mouseListener.onMouseMove = function() {
	overSubItems = 0;
	for (j=0; j<overBtn.totalSubItems; j++) {
		s = overBtn.subMenu["subItem"+j];
		if (s.hitTest(_xmouse, _ymouse)) {
			var cl:Color = new Color(s);
			cl.setRGB(siROC);
			overSubItems++;
		} else {
			var cl:Color = new Color(s);
			cl.setRGB(siC);
		}
	}
	if (overSubItems == 0) {
		var cl:Color = new Color(pressedSubItem);
		cl.setRGB(siROC);
	}
};

mouseListener.onMouseDown = function() {
	for (j=0; j<overBtn.totalSubItems; j++) {
		s = overBtn.subMenu["subItem"+j];
		if (s.hitTest(_xmouse, _ymouse)) {
			pressedSubItem = s;
			//ADD HERE CUSTOM FUNCTION
		}
	}
};



//object that contains data from xml
var obj:Object = new Object();

//create new xml object
var xml:XML = new XML();
xml.ignoreWhite = true;



//after the xml is loaded, load variables and parse the date to obj
xml.onLoad = function(succes) {
	if (succes) {
		//get colors values from xml
		iC = Number(this.firstChild.attributes.itemColor);
		iROC = Number(this.firstChild.attributes.itemRollOverColor);
		siC = Number(this.firstChild.attributes.subitemColor);
		siROC = Number(this.firstChild.attributes.subitemRollOverColor);
		
		obj.buttons = this.firstChild.childNodes;
		totalButtons = obj.buttons.length;
		
		//function call
		addButtons();
	} else {
		trace("xml could not load");
	}
};

//the path to the xml file
xml.load("menu.xml");

 

E esse abaixo é o xml:

 

<?xml version="1.0" encoding="UTF-8"?>

<menu itemColor="0xFFFFFF" itemRollOverColor="0xFFFFFF" subitemColor="0xFFFFFF" subitemRollOverColor="0xFF6600">
	
	<item title="HOME" menu_goto_frame = "2" menu_goto_mctarget = "_root">
	</item>

	<item title="EMPRESA" menu_goto_frame = "3" menu_goto_mctarget = "_root">
		</item>
		
	<item title="GALERIA menu_goto_frame = "4" menu_goto_mctarget = "_root"">
		<subitem title="Banheiros" menu_goto_frame = "4" menu_goto_mctarget = "_root"/>
		<subitem title="Closets" menu_goto_frame = "4" menu_goto_mctarget = "_root"/>
		<subitem title="Cozinhas" menu_goto_frame = "4" menu_goto_mctarget = "_root"/>
		<subitem title="Dormitórios" menu_goto_frame = "4" menu_goto_mctarget = "_root"/>
		<subitem title="Home Oficce" menu_goto_frame = "4" menu_goto_mctarget = "_root"/>
		<subitem title="Home Theaters" menu_goto_frame = "4" menu_goto_mctarget = "_root"/>
	</item>

	<item title="PROJETOS" menu_goto_frame = "5" menu_goto_mctarget = "_root">
		<subitem title="Banheiros" menu_goto_frame = "5" menu_goto_mctarget = "_root"/>
		<subitem title="Closets" menu_goto_frame = "5" menu_goto_mctarget = "_root"/>
		<subitem title="Cozinhas" menu_goto_frame = "5" menu_goto_mctarget = "_root"/>
		<subitem title="Dormitórios" menu_goto_frame = "5" menu_goto_mctarget = "_root"/>
		<subitem title="Home Oficce" menu_goto_frame = "5" menu_goto_mctarget = "_root"/>
		<subitem title="Home Theaters" menu_goto_frame = "5" menu_goto_mctarget = "_root"/>
	</item>
	
	<item title="CONTATO" menu_goto_frame = "6" menu_goto_mctarget = "_root">
	</item>
</menu>


agradeceço desde de ja.. abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

você já tem os valores do FRAME que estão no XML

 

Basta recuperar isso com o AS na hora de carregar o XML e guardar em uma variavel... e depois setar esse valor relacionado aos botões etc.

 

Abraços

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.