Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите повесить xml меню на мувиклип (http://www.flasher.ru/forum/showthread.php?t=185725)

DVK 19.10.2012 17:13

Помогите повесить xml меню на мувиклип
 
Доброго времени суток!!!
Подскажите пожалуйста как повесить xml меню на мувиклип (при наведении курсора мыши в верхнюю часть выезжает мувик. а при отведении курсора прячется обратно). Хочу сделать чтоб меню ездило на муувиклипе только вот не знаю как это сделать.
Код мувика:
Код AS3:

var showState:Boolean=false;
 
    stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMove);
    function stage_mouseMove(e:MouseEvent):void
    {
      if (mouseY < 50 && !showState)
      {
          showState = true;
          TweenMax.to(thumb,0.5,{y:30, ease:Expo.easeOut})
          }
      if (mouseY > 50 && showState)
      {
          showState = false;
          TweenMax.to(thumb,1,{y:-50, ease:Expo.easeOut})
                  }
    }

Код меню:
Код AS3:

import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
com.greensock.plugins.TweenPlugin.activate([GlowFilterPlugin]);
 
const ITEM_HEIGHT:Number = 30;
 
var xmlPath:String = "flash_menu1.1.xml";
var xml:XML;
var floor:Number = 45;
var selectedMenu:Array;
var menuCounter:uint = 0;
 
var loader = new URLLoader();
loader.load(new URLRequest(xmlPath));
loader.addEventListener(Event.COMPLETE, xmlLoaded);
 
function xmlLoaded(e:Event):void
{
    if ((e.target as URLLoader) != null )
  {
 
          xml = new XML(loader.data);
      xml.ignoreWhitespace = true;
          createMenus();
  }
}
function createMenus():void
{
    for each (var menu:XML in xml.menu)
  {
          var menuItems:Array = createMenu(menu);
        for (var i= 0; i< menuItems.length; i++)
        {
                  menuItems[i].y = floor;
                  menuItems[i].x = -120 + menuCounter * 140;
                  addChild(menuItems[i]);
        }
  }
}
function createMenu(menu:XML):Array
{
    var menuItems:Array = new Array();
    for each (var item:XML in menu.item)
  {
          var menuItem:MenuItem = new MenuItem();
          menuItem.menuText.text = item.label.toString();
          menuItem.linkTo=item.linkTo.toString();
          menuItem.mouseChildren = false;
          menuItem.buttonMode=true;
          menuItem.addEventListener(MouseEvent.CLICK,navigate);
          menuItems.push(menuItem);
  }
        var mainItem:MenuItem = new MenuItem();
 
        mainItem.mouseChildren = false;
        menuItems.push(mainItem);
    mainItem.belongsToMenu = menuItems;
        mainItem.menuText.text = menu. @ id;
        mainItem.addEventListener(MouseEvent.CLICK, mainItemClicked);
        menuCounter++;
 
    return menuItems;
}
function mainItemClicked(e:Event):void
{
        if (selectedMenu)
  {
          for (var i =0; i<  selectedMenu.length-1; i++)
    {
          TweenMax.to(selectedMenu[i], 0.5 , {y:floor, glowFilter:{color:0x324df, alpha:0, blurX:0, blurY:0}});
    }
  }
var clickedMenu:Array = e.target.belongsToMenu;
        selectedMenu = clickedMenu;
 
for (var j =0; j<  selectedMenu.length-1; j++)
  {
var item = selectedMenu[j];
var targetY:Number = floor + ITEM_HEIGHT*1.2*(1 + j);
        TweenMax.to(item, 0.5 , {y:targetY, glowFilter:{color:0xffffff, alpha:1, blurX:20, blurY:20}});
  }
}
function navigate(e:MouseEvent):void
{       
  var item:MenuItem = e.target as MenuItem;
  var urlRequest:URLRequest = new URLRequest(item.linkTo);
  navigateToURL(urlRequest);
}

Вот эта строка отвечает за координаты меню "var floor:Number = 45;" как ее повесить на мувиклип???

in4core 19.10.2012 17:24

Код довольно грамотный. почему в кадрах? Казнить, нельзя помиловать!

DVK 19.10.2012 21:17

Казнить нельзя, лучше помиловать!
Ведите ли уроков на as 3.0 падающих меню с xml я нашел только этот, есть много на ООП но ООП очень тяжело новичку.
Код сделан по зарубежному уроку http://tutorials.flashmymind.com/200...ctionscript-3/ (ихний ресурс что то лежит) заходил через http://www.tutoriallounge.com/2009/0...ion-tutorials/ 10 пункт под названием Advanced XML Menu
Помогите хоть советом где что посмотреть где что почитать? Если это возможно

Isfet 20.10.2012 17:46

ну так добавляйте пункты меню не в стейдж, а в ваш мувиклип
вместо
Код AS3:

 addChild(menuItems[i]);

пишем
Код AS3:

 thumb.addChild(menuItems[i]); //если я правильно понял ваш мувиклип(который будет перемещаться) называется thumb.


DVK 20.10.2012 21:10

Цитата:

Сообщение от Isfet (Сообщение 1100627)
ну так добавляйте пункты меню не в стейдж, а в ваш мувиклип

Огромное Вам спасибо!!!
Получилось работает!!!!!
Еще раз спасибо! а то я уж думал что это не возможно.


Часовой пояс GMT +4, время: 16:15.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.