Не знала, как точно назвать эту проблему, но суть такова: я создаю объект (квадрат) с помощью функции, передавая в неё параметры из другой функции, которая вызывается при клике на т.н. панель инструментов внизу экрана.
Как это всё выглядит:
http://img0.liveinternet.ru/images/a...0031_task4.swf
Если происходит нажатие на квадрат, всплывает меню с опциями поворота и перекрашивания.
Так вот вопрос: При выборе пункта "поворот" или "перекрасить" должен перекраситься текущий объект (я чую, что необходимо использовать this), но у меня поворачиваются все квадраты на экране( Как модифицировать код, чтобы поворачивался текущий объект?
Пробовала делать повторение одного и того же куска кода семь раз, но с разными размерами квадрата, однако это решение какое-то совсем не изящное.
Буду благодарна за помощь, т.к. в as3 работаю всего ничего и самой мне так сразу не разобраться.
Кусок кода

Код AS3:
function Cube1Tool(e:MouseEvent):void
{
CubeTool(1,12.5,acube1);
}
function Cube2Tool(e:MouseEvent):void
{
CubeTool(2,25,acube2);
}
function Cube3Tool(e:MouseEvent):void
{
CubeTool(3,50,acube3);
}
function Cube4Tool(e:MouseEvent):void
{
CubeTool(4,75,acube4);
}
function Cube5Tool(e:MouseEvent):void
{
CubeTool(5,100,acube5);
}
function Cube6Tool(e:MouseEvent):void
{
CubeTool(6,150,acube6);
}
function Cube7Tool(e:MouseEvent):void
{
CubeTool(7,200,acube7);
}
function CubeTool(a:int,siz:Number,acube:Object):void
{
acube.visible=true;
var rect:Sprite = new Sprite();
rect.graphics.lineStyle(2,0xffffff);
rect.graphics.beginFill(0x000000);
rect.graphics.drawRect(-siz/2,-siz/2,siz,siz);
rect.graphics.endFill();
rect.x+=282.5;
rect.y+=150;
addChild(rect);
board.addChild(rect);
acube.addEventListener(MouseEvent.MOUSE_UP, AcubeTool);
rect.addEventListener(MouseEvent.MOUSE_DOWN, Popup);
rect.addEventListener(MouseEvent.MOUSE_DOWN, drag);
rect.addEventListener(MouseEvent.MOUSE_UP, stopdrag);
function drag(e:MouseEvent):void
{
rect.startDrag();
}
function stopdrag(e:MouseEvent):void
{
rect.stopDrag();
}
function Popup(e:MouseEvent):void
{
popupmenu.visible=true;
popupmenu.rollright.addEventListener(MouseEvent.MOUSE_UP, RollR);
popupmenu.rollleft.addEventListener(MouseEvent.MOUSE_UP, RollL);
popupmenu.repaintTool.addEventListener(MouseEvent.MOUSE_UP, RepaintTool);
function RollR(e:MouseEvent):void
{
rect.rotation += 15;
popupmenu.visible=false;
}
function RollL(e:MouseEvent):void
{
rect.rotation -= 15;
popupmenu.visible=false;
}
function RepaintTool(e:MouseEvent):void
{
var colorInfo:ColorTransform = rect.transform.colorTransform;
colorInfo.color = 0x123456;
rect.transform.colorTransform = colorInfo;
popupmenu.visible=false;
}
}
function AcubeTool(e:MouseEvent):void
{
acube.visible=false;
RemoveObject.remove(rect);
addChild(rect);
RemoveObject.remove(rect);
}
}