Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Создание всплывающего меню с элементами (http://www.flasher.ru/forum/showthread.php?t=153351)

stantler 01.04.2011 10:52

Создание всплывающего меню с элементами
 
Начну с того, что с флешем я познакомился вчера и прям сразу в большой проект (ушел программист по флешу и я был выбрал вместо него). Поэтому прошу строго не судить и не пинать за нелепые вопросы.

В общем есть проект, где флеш выступает в роли GUI. Его вызывает C++ и все Callback'и тоже отправляет туда через Scaleform (это реализовано).
Есть:
  • Весь fla файл:
    http://habreffect.ru/files/b65/ede17a358/as_main.JPG
  • Кнопки-иконки:
    http://habreffect.ru/files/04f/4a78e1165/as_button.JPG
  • Элемент:
    http://habreffect.ru/files/d4a/d58b3c4f0/as_icons.JPG
  • Тип меню (их 4):
    http://habreffect.ru/files/349/92c9d74a1/as_type.JPG
  • Анимация этого меню (в первом кадре код: "stop();" ):
    http://habreffect.ru/files/dd7/3ddf8576d/as_ani.JPG
  • Код в отдельном AS файле, привязанном к COM_FNPC:
    Код AS1/AS2:

    import controls.textboader.HtmlTextBoarder;
    import controls.textboader.FontType;
    import gfx.controls.ButtonGroup;
    import gfx.controls.Button;
    import controls.button.HtmlButton;
    import gfx.core.UIComponent;
    import network.SWFNetWork;
     
    class scene.fnpc.FnpcMenu extends UIComponent
    {
            private var m_ActiveMenuList:Array = new Array;
     
            public function FnpcMenu()
            {
            }
            public function onLoad()
            {
                    super.onLoad();
                    trace("Load");
                    FNPC_1Type.visible = false;
                    FNPC_2Type.visible = false;
                    FNPC_3Type.visible = false;
                    FNPC_4Type.visible = false;
            }
            public function ShowFnpcMenu(nCount:Number, aIDArray:Array, aKeyArray:Array, aTextArray:Array)
            {
                    var nDepth:Number = this.getNextHighestDepth();
                    trace("Show "+nCount+" menu");
                    for(var i:Number = 0 ; i < nCount ; i++)
                    {
                            var mc:MovieClip = this.GetMenuIcon(aIDArray[0]);
                            if (mc != null)
                            {
                                    trace("Get "+mc.toString()+" icon");
                                    var menu:Object = new Object();
                                    var mc:MovieClip = this.attachMovie(mc, "menu"+i, nDepth);
     
                                    menu.Movie = mc;
                                    menu.ID = i;
     
                                    this.m_ActiveMenuList.push(menu);
                            }
                    }
     
                    switch(nCount)
                    {
                            case 1:
                            {
                                    FNPC_1TypeAni.gotoAndPlay(2);
                                    FNPC_1Type.visible = true;
                            }
                            case 2:
                            {
                                    FNPC_2TypeAni.gotoAndPlay(2);
                                    FNPC_2Type.visible = true;
                            }
                            case 3:
                            {
                                    FNPC_3TypeAni.gotoAndPlay(2);
                                    FNPC_3Type.visible = true;
                            }
                            case 4:
                            {
                                    FNPC_4TypeAni.gotoAndPlay(2);
                                    FNPC_4Type.visible = true;
                            }
                    }
            }
     
            private function GetMenuIcon(nID:Number):MovieClip
            {
                    var mc:MovieClip = null;
                    switch(nID)
                    {
                            case 1:
                                    mc = this.BTN_FNPC_ALCHEMY;
                                    break;
                          ... еще 15 кейсов ...
                    }
                    return mc;
            }
    }


Теперь к сути, что надо:
Т.к. на меня этот проект свалили, то надо "вчера", поэтому и прошу, показать что и как и куда.
Нужно, чтобы при вызове функции ShowFnpcMenu показывалась анимация с 1-4 элементами. И у каждого этого элемента была бы своя иконка-кнопка (с анимацией onhover, onclick...), свой key и свой text.

Вроде ничего сложного, но мне главное понять принцип на первое время, а потом уже флеш подучу.

etc 01.04.2011 12:49

Наймите флешера.

stantler 02.04.2011 19:05

Извините, но не вариант.
Еще проблема с ошибкой, что класс "класс 1" конфликтует с уже загруженным классом "класс 1". Ошибка возникает в проекте, при компиляции без изменений. Как от нее избавиться?


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

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