Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [...] Создание меню на Gaia Framework (http://www.flasher.ru/forum/showthread.php?t=194226)

namespaces 10.02.2013 08:49

Создание меню на Gaia Framework
 
Столкнулся с одной проблемой, попытаюсь объяснить подробно.
Создаю кнопки для меню, клонирую программно:

Код AS3:

//Название кнопок
$XML = Gaia.api.getSiteXML();
Menu = $XML.children().children().descendants("page").attribute("title");
Menu.normalize();
 
TweenNano.to($menuContainer, 1, {alpha: 1});
var i:uint = 0;
var XPos:Number = 0;
 
// Ссылки на страницы
var AllPages:Array = ["index/nav/home", "index/nav/about", "index/nav/equipment",
"index/nav/project", "index/nav/events", "index/nav/services", "index/nav/contact"];
 
// Создание в цикле
for each (var item:String in Menu)
{
$menubtn = new MenuBtn();
$menubtn.buttonMode = true;
$menubtn.mouseChildren = false;
$menubtn.name = i.toString();
$menuContainer.addChild($menubtn);
 
// Текстовое поле кнопок             
var $txt:TextField = $menubtn.MenuText.getChildByName("txt") as TextField;
$txt.selectable = false;
$txt.autoSize = TextFieldAutoSize.LEFT;
$txt.text = item;
 
$menubtn.addEventListener(MouseEvent.CLICK, MenuFX);
$menubtn.addEventListener(MouseEvent.MOUSE_OVER, MenuFX);
$menubtn.addEventListener(MouseEvent.MOUSE_OUT, MenuFX);
i++;
 
// Вывод кнопок с анимацией               
var arr:Array = [$menubtn];
var u:uint = arr.length;
 
while (u--)
{
  TweenNano.to(arr[u], 1, {y: 10 * i * 5, ease: Elastic.easeOut});
}
 
// Контейнер для всех кнопок               
$menuContainer.x = W - 100;
$menuContainer.y = (H - $menuContainer.width) / 3;
 
XPos = $menubtn.x;
}
 
 
function MenuFX(e:MouseEvent):void
            {
                switch (e.type)
 
                {
                    case MouseEvent.MOUSE_OVER:
                    {
                        trace(e.target.name)
                        $menuOverSound.play();
                        e.target.gotoAndPlay(0);
                        TweenNano.to(e.currentTarget, .5, {x: -40});
                        TweenMax.to(e.target, .3, {blurFilter: {blurX: 20, remove: true}});
                        break;
                    }
 
                    case MouseEvent.MOUSE_OUT:
                    {
                        TweenNano.to(e.currentTarget, .5, {x: XPos});
                        break;
                    }
 
                    case MouseEvent.CLICK:
                    {
                        // Gaia.api.goto (e.target.name);
 
                        // Раньше при нажатии на кнопки, я использовал инстанс неймы.
                        //Примерно так:
 
                        if (e.target.name == "0"){
 
                          Gaia.api.goto ("index/nav/about");
                          }
 
                          //или
 
                        switch (e.target.name)
                        {
                        case "0":
                        {
 
                        Gaia.api.goto ("index/nav/about");
 
                        break;
                        }
                        }
 
                        // и т.д. Знаю что делаю что то неправильно, надо задать конкретные ссылки
                        //для каждой кнопки, и по событию target переходить по ссылкам.
 
                        $menuClickSound.play();
                        break;
                    }
                }
 
            }

Что можете предложить в данном случае?

PainKiller 14.02.2013 18:55

я конечно не телепат, но попытаюсь угадать в чем проблема - создается только одна кнопка?

namespaces 24.02.2013 04:58

Спасибо, уже разобрался.
Надо было просто указать ссылку

Код AS3:

 switch (Gaia.api.getCurrentBranch())
            {
                case Pages.HOME:
                    break;
            }



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

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