Спасибо за ваши ответы!
Я уже который день сижу голову ломаю...я не создавал классов, пытался все сделать линейным программированием, а делаю я меню с выезжающим саб меню.
У меня есть МК(муви клип), в этом МК menu у меня 5 главных МК кнопок (BUT1, BUT2, BUT3, BUT4, BUT5) с анимацией, каждая главная кнопка имеет саб кнопки и я создал 5 МК (but1Sub, but2Sub, but3Sub, but4sub, but5sub). В butSub есть: саб кнопки МК со своей анимацией, и анимация как саб кнопки выпадают когда срабатывает событие для главной кнопки.
Создал массивы:

Код AS3:
var aButtons:Array = [home_btn, services_btn, ted_btn, knowCenter_btn, about_btn]; - главные кнопки
var aSubMenu:Array = [home_sub, services_sub, ted_sub, knowledge_sub, about_sub];- массив со всеми саб менюшками
var aHomeSub:Array = []; - массивы для саб кнопок
var aServicesSub:Array = [package_btn, component_btn, prodRel_btn, medical_btn, solar_btn];
var aTedSub:Array = [report_btn, video_btn, accessibility_btn];
var aKnowCenter:Array = [medical_btn, packageTest_btn, railroad_btn];
var aabout:Array = [qm_btn, news_btn, contact_btn, links_btn];//4*/
-
-
-
Идея была такая:
инициализирую главные кнопки aButtons[], при MOUSE_OVER вызываю функцию где главная кнопка делается нажатой, потом вызываю саб менюшку из aSubMenu[]. Из функции где я вызываю саб меню я хочу инициализировать саб кнопки передавая нужный массив в initButtons(arr); таким образом я использую одну и ту же функцию, и так я хочу сделать для всех функций.

Код AS3:
function initButtons(arr:Array):void {
for(var i:int = 0; i<arr.length; i++){
arr[i].id = i;
arr[i].buttonMode = true;
arr[i].addEventListener(MouseEvent.MOUSE_OVER, playOver);
arr[i].addEventListener(MouseEvent.MOUSE_OUT, playOut);
arr[i].addEventListener(MouseEvent.CLICK, doClick);
}//for
}//initButtons
function playOver(event:MouseEvent):void{
var currentBtn:int = event.currentTarget.id;
trace("suka="+currentBtn); //:)
event.target.gotoAndPlay("over");
setSelectedBtn(currentBtn, aButtons); // если бы я мог получить массив с кнопкой из события, то было бы очень красиво.
callSubMenu(currentBtn)
}//playOver
function setSelectedBtn(id:int, arr:Array){
for(var i:int = 0; i<arr.length; i++){
if(i == id){
arr[i].gotoAndStop("down");
arr[i].buttonMode = false;
arr[i].removeEventListener(MouseEvent.MOUSE_OVER, playOver);
arr[i].removeEventListener(MouseEvent.MOUSE_OVER, playSOver);
arr[i].removeEventListener(MouseEvent.MOUSE_OUT, playOut);
arr[i].removeEventListener(MouseEvent.CLICK, doClick);
}//if
else{
if(arr[i].currentLabel == "down"){
arr[i].gotoAndPlay("out");
}//if
arr[i].buttonMode = true;
arr[i].addEventListener(MouseEvent.MOUSE_OVER, playOver);
arr[i].addEventListener(MouseEvent.MOUSE_OVER, playSOver);
arr[i].addEventListener(MouseEvent.MOUSE_OUT, playOut);
arr[i].addEventListener(MouseEvent.CLICK, doClick);
}//else
}//for
}//setSelectedBtn
function callSubMenu(id:int):void{
for(var i:int = 0; i < aSubMenu.length; i++){
if(id == i && id !=0)
{
aSubMenu[i].gotoAndPlay("open");
initSubMenuButtons(i);
trace("sub open for "+aSubMenu[i]);
}//if
else {
if(aSubMenu[i].currentLabel == "open")
{
aSubMenu[i].gotoAndPlay("close");
trace("sub closed for "+aSubMenu[i]);
}//if
}//else
}//for
}//callSubMenu
function initSubMenuButtons( id:int ):void{
trace("initSubMenuButtons for " + id);
switch(id){
case 0:break;
case 1:initButtons(aServicesSub);break;
case 2:;break; //initButtons(aTedSub)
case 3:;break; //initButtons(aKnowCenter)
case 4:;break; //initButtons(aAbout)
default:break;
}//switch
}//initSubMenuButtons
------
MAIN
------
initButtons(aButtons);
В коде могут быть ошибки, т.к. я постоянно все переписываю. Вариант этот еще сырой. Моя задача сейчас инициализировать саб кнопки и как бы мне это все так сделать, чтобы каждая саб кнопка имела уникальный ID чтобы мне вызывать iFrame в html....
Вообщем жесть....не судите строго, я недавно только начал изучать AS3.
Знаю что все это можно организовать с классами, только я не понимаю как это реализовать в моем случае!
Спасибо огромное за вашу помощь!