Ваши объекты и не будут диспатчить мышиные события, если перекрыты InteractiveObject'ами с включенным mouseEnabled. Предполагалось, что по MOUSE_WHEEL у контейнера, где находятся все нужные объекты, вы будете искать детей, находящихся под мышкой, используя метод getObjectsUnderPoint. Результат будет тот-же, как если бы у вас все объекты диспатчили MOUSE_WHEEL
Хотя у меня большие сомнения, что решение, которое вызвало необходимость таких извращений, правильное. Опишите ситуацию в целом, может что-то умное подскажем
Добавлено через 4 минуты
Цитата:
Сообщение от BornTOFree
getObjectUnderPoint работает. Но я не могу понять, он работает когда я щелкаю по объектам, а когда использую MOUSE_OVER то события до объектов опять же не доходят. Вот пример и код:
 Код AS3:
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.text.TextField;
import flash.ui.Mouse;
[SWF(backgroundColor="0xFFFFFF", width="800", height="600", frameRate="30")]
public class Main extends Sprite {
private var txt:TextField
private var container:Sprite
public function Main() {
init();
}
private function init():void {
txt = new TextField();
container = new Sprite();
addChild(container)
for(var i:uint = 0; i<3; i++){
var sp:Sprite = new Sprite();
container.addChild(sp);
sp.name = "button: "+i
sp.graphics.beginFill(0x000000, 0.7);
sp.graphics.drawRect(100, 100, 100, 50);
sp.graphics.endFill();
sp.y = Number(sp.y + sp.height+10)*i;
addEventListener(MouseEvent.MOUSE_OVER, mouseOver);
addEventListener(MouseEvent.CLICK, clickListener);
}
var bg:Sprite = new Sprite();
addChild(bg);
bg.addChild(txt);
bg.name = "BG"
bg.graphics.beginFill(0xF5003D,0.5);
bg.graphics.drawRect(150, 100, 100, 170);
bg.graphics.endFill();
bg.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheel);
}
private function clickListener (e:MouseEvent):void {
var p:Point = new Point(e.stageX, e.stageY);
var arr:Array = container.getObjectsUnderPoint(p);
checkInfo(arr);
}
private function checkInfo (arr:Array):void {
var info:String;
for (var i:uint = arr.length; i--; ){
info = arr[i].name + " ";
arr[i].alpha = 0.5
}
trace(info);
}
private function mouseOver(e:MouseEvent):void {
var p:Point = new Point(e.stageX, e.stageY);
var arr:Array = container.getObjectsUnderPoint(p);
checkInfo(arr);
}
private function mouseWheel(e:MouseEvent):void {
txt.text = "wheel"
}
}
}
|

Код AS3:
private function mouseOver(e:MouseEvent):void {
var p:Point = new Point(container.mouseX, container.mouseY);
var arr:Array = container.getObjectsUnderPoint(p);
checkInfo(arr);
}