Цитата:
|
Вы предлагаете декомпилировать вашу флэшку?
|
Нет, это все та же программа, с которой все начиналось, листинг лежит выше (просто добавил кнопку). Вот вырезка из кода:

Код AS3:
//..................
public function SuperCircle()
{
// Создаю 50 шариков
for (var i:uint=0;i<50;i++){
bl = new Ball(0x00ff00,2);
addChild(bl);
bl.x = 100 + (i*bl.width);
bl.y = 100;
_dictionary[bl] = [bl.x, bl.y];
}
//Вешаю на них обработчик события MOUSE_OUT
this.addEventListener(MouseEvent.MOUSE_OUT, onMO);
// Создаю кнопку (нарисовал сам в CS5 и обозвал Button)
bt = new Button ();
addChild(bt);
bt.x = 200;
bt.y = bt.height + 5;
// Вешаю на кнопку обработчик события CLICK
bt.addEventListener(MouseEvent.CLICK, onMc);
}
private function onMc(e:MouseEvent):void
{
pc = new PictureDwn("main.jpg");
addChild(pc);
trace("Click!!");
bt.removeEventListener(MouseEvent.CLICK, onMc);
}
private function onMO(e:MouseEvent):void
{
// ...... продолжение кода...
Как видите в коде, строчка....:

Код AS3:
this.addEventListener(MouseEvent.MOUSE_OVER, onMO);
.....вешает обработчик события MOUSE_OVER на ВСЕ объекты и получается, что пронося мышкой над новосозданной кнопкой, она тоже улетает как шарики, а мне этого Не нужно.
Попытки писать обработчики для каждого объекта, вместо
this :

Код AS3:
bl.addEventListener(MouseEvent.MOUSE_OUT, onMO); // обработчик для ШАРИКОВ -
//-срабатывает только последний созданный
bt.addEventListener(MouseEvent.MOUSE_OUT, onMO_2);// обработчик для КНОПКИ
...приводит к неправильной реакции шариков, т.е. срабатывает всего один, последний созданный, но кнопка, да, начинает реагировать нормально.
Так вот вопрос заключается в том, как грамотно разделить обработчики событий для каждого из объектов в МОЕМ случае.