andretlima 0 Denunciar post Postado Novembro 4, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 4, 2010 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