| 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.
Вроде ничего сложного, но мне главное понять принцип на первое время, а потом уже флеш подучу.
|