ВОобщем казалось бы тривиальная задача, как выполнить знаю, дело в другом - хочу хорошую реализацию, но не представляю как ее можно сделать. Описываю суть :
Есть набор иконок скажем 5 штук, расположенных вертикально друг за другом. Чуть правее ситуация повторяется, но в этот раз не иконки, а текстовые кнопки. Кнопки находятся в контейнере, который может скрываться под маской ( заезжать и выезжать за столбик с иконками ). Так вот, нужно : чтобы при наведении на иконку выделялась не только она, но и текстовая кнопка рядом, а при наведении на кнопку текстовую - выделялась соотв ей иконка. Соотв при нажатии что на иконку, что на кнопку действия должны быть одинаковые.
Прилогаю схему :
Щас это реализовано в стиле

Код AS3:
private function defineIcons():void
{
var i:int = 8;
while ( i--> 1) {
var $m:MovieClip = this['i' + i];
$m.buttonMode = true;
$m.addEventListener(MouseEvent.MOUSE_OVER , onIconOver);
$m.addEventListener(MouseEvent.MOUSE_OUT , onIconOut);
$m.addEventListener(MouseEvent.CLICK , onIconClick);
}
}
Определяем иконки, они лежать на сцене изначально.

Код AS3:
private function onIconOut(e:MouseEvent):void
{
e.currentTarget.filters = [];
var name:String = e.currentTarget.name;
var num:int = int(name.slice(1)) + 1;
( _glassMenu.getChildAt( num ) as Sprite ).dispatchEvent( new MouseEvent(MouseEvent.MOUSE_OUT));
}
private function onIconOver(e:MouseEvent):void
{
e.currentTarget.filters = [ new GlowFilter(0xFFFF00, 0.52, 14, 14, 2, 3)];
var name:String = e.currentTarget.name;
var num:int = int(name.slice(1)) + 1;
( _glassMenu.getChildAt( num ) as Sprite ).dispatchEvent( new MouseEvent(MouseEvent.MOUSE_OVER));
}
Иконочные события

Код AS3:
private function defineMenu():void
{
for (var i:int = 0; i < _menuArray.length; i++) {
var tf:TextField = DisplayText.addField('f_1', 15);
tf.textColor = 0x330000;
tf.text = _menuArray[i];
var sp:Sprite = getSimpleHiderSprite(tf.width, tf.height);
sp.x = 35;
sp.y = (tf.height + 7) * i + 17;
sp.addChild(tf);
sp.mouseChildren = false;
sp.buttonMode = true;
sp.addEventListener(MouseEvent.MOUSE_OVER , onMenuItemOver);
sp.addEventListener(MouseEvent.MOUSE_OUT , onMenuItemOut);
sp.addEventListener(MouseEvent.CLICK , onIconClick);
_glassMenu.addChild(sp);
}
_glassMenu.closeButton.buttonMode = true;
_glassMenu.closeButton.addEventListener(MouseEvent.CLICK , onClickCloseButton);
}
Текстовые поля создаю динамически

Код AS3:
private function onMenuItemOut(e:MouseEvent):void
{
(e.currentTarget.getChildAt(0) as TextField).textColor = 0x330000;
var indx:int = _glassMenu.getChildIndex(e.currentTarget as Sprite) - 1;
this['i' + indx].filters = [];
}
private function onMenuItemOver(e:MouseEvent):void
{
(e.currentTarget.getChildAt(0) as TextField).textColor = 0x990000;
var indx:int = _glassMenu.getChildIndex(e.currentTarget as Sprite) - 1;
this['i' + indx].filters = [ new GlowFilter(0xFFFF00, 0.52, 14, 14, 2, 3)];
}
А вот и события сродние иконкам.
Самой собой, такая дубовая реализация мне не по душе, это набросал для теста.
Поэтому хочу узнать у вас, как тут сделать можно удобно?!