AS3:鼠标事件问题

时间:2013-07-20 11:32:06

标签: actionscript-3

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

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);
}

2 个答案:

答案 0 :(得分:0)

也许尝试设置

mc.mouseEnabled = false;

当你开始滑动容器并完成后恢复mouseEnabled容器。

答案 1 :(得分:0)

使用子索引0向mc添加图层,并在图层上添加鼠标单击事件

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);
 }