1

我在一个精灵容器中有 30 个按钮,而一页仅包含 6 个图标(按钮),这意味着对于 30 个按钮,我在一个精灵容器中有 5 个页面,这些页面通过一次滑动精灵一页来显示。我遇到的问题是,当我在 Flash 的 MouseDown 事件上滑动容器时,容器内的按钮(子)也会触发。我只希望一个事件应该在 time.i 触发。我的意思是,当我滑动精灵时,我不会触发容器内的任何鼠标事件,但是当我不滑动容器时我不会触发。

enter code here

var mc:Sprite = new Sprite();
mc.addChild(bouton);
bouton.addEventListener(MouseEvent.CLICK,submenu);
mc.addEventListener(MouseEvent.MOUSE_DOWN, _mouseDownHandler, false, 0, true);

function submenu(e:events):void{

trace(e.current.target.menu);
}
function _mouseDownHandler(event:MouseEvent):void { 
TweenLite.killTweensOf(mc);
_t1 = _t2 = getTimer();
mc.startDrag(false, new Rectangle(_panelBounds.x - 99999, _panelBounds.y, 9999999, 0));
this.stage.addEventListener(MouseEvent.MOUSE_UP, _mouseUpHandler, false, 0, true);
this.addEventListener(Event.ENTER_FRAME, _enterFrameHandler, false, 0, true);
}
4

2 回答 2

0

向 mc 添加一个子索引为 0 的图层,并在图层上添加鼠标单击事件

mc.graphics.beginFill(0xffff00, 0.01);
mc.graphics.drawRect(0, 0, 400, 400);// you can set the size here, or use mc.width,mc,height

mc.graphics.endFill();

if (stage) {
    onAddToStage(null);
} else {
    addEventListener(Event.ADDED_TO_STAGE, onAddToStage);
}


protected function onAddToStage(event:Event):void
{
    var s:Sprite = new Sprite();//the layer to trigger event

     s.graphics.beginFill(0x000000, 0.01);
     s.graphics.drawRect(0, 0, mc.width, mc.height);
     s.graphics.endFill();
     s.addEventListener(MouseEvent.MOUSE_DOWN, _mouseDownHandler, false, 0, true);
     mc.addChildAt(s, 0);
 }
于 2013-07-20T14:41:13.457 回答
0

也许尝试像设置

mc.mouseEnabled = false;

当您开始滑动容器并完成后为容器恢复 mouseEnabled 时。

于 2013-07-20T11:37:22.370 回答